最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實現(xiàn)登錄攔截的示例代碼

 更新時間:2023年09月08日 09:17:26   作者:龍貓藍圖  
如果我們不進行登錄攔截的話,即使我們跳過登錄頁面直接去訪問任意一個頁面也能訪問成功,那么登錄功能就沒有意義,同時也會存在安全問題,本文就來介紹一下SpringBoot登錄攔截,具有一定的參考價值,感興趣的可以了解一下

如果我們不進行登錄攔截的話,即使我們跳過登錄頁面直接去訪問任意一個頁面也能訪問成功,那么登錄功能就沒有意義,同時也會存在安全問題,因為有些操作是要用戶登錄后才能執(zhí)行的,如果用戶沒有登錄,該接口就獲取不了當前訪問的用戶也就不知道是哪個用戶執(zhí)行了該操作就會出錯。所以我們要進行登錄判斷,如果沒有登錄則訪問任意頁面都跳轉(zhuǎn)到登錄頁面。

代碼實現(xiàn)

  • 創(chuàng)建自定義過濾器LoginCheckFilter
  • 在啟動類上加入注解@ServletComponentScan,才會去掃描過濾器
  • 完善過濾器的處理邏輯

具體實現(xiàn)

使用過濾器或者攔截器,在過濾器或者攔截器中判斷用戶是否已經(jīng)完成登錄,如果沒有登錄則跳轉(zhuǎn)到登錄頁面。如果登錄了或者該請求不需要登錄攔截器直接放行,交由具體的controller進行處理。

LoginCheckFilter

package com.zxy.filter;
//urlPatterns配置攔截路徑,這里表示攔截所有
@WebFilter(filterName="loginCheckFilter",urlPatterns = "/*")
@Slf4j
public class LoginCheckFilter implements Filter {
    //路徑匹配器,支持通配符
    public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        //1.獲取本次請求的URI
        String requestURI = request.getRequestURI();
        //定義不需要處理的請求路徑,下面的*只是字符串,并不是通配符,后面通過check判斷時*號就視為通配符了
        String[] urls = new String[]{
                "/employee/login",
                "/employee/logout",
                "/backend/**",
                "/front/**"
        };
        //2.判斷本次請求是否需要處理
        boolean check = check(urls,requestURI);
        //3.如果不需要處理,直接放行
        if(check){
            filterChain.doFilter(request,response);
            return;
        }
        //4.如果需要處理,判斷是否登錄
        //登錄狀態(tài),不需要處理,直接放行
        if(request.getSession().getAttribute("employee")!=null){
            filterChain.doFilter(request,response);
            return;
        }
        //5.如果未登錄則返回未登錄結(jié)果,通過輸出流方式向客戶端頁面響應數(shù)據(jù),因為我們返回的是void,所以不能return R.error("NOTLOGIN")
        response.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN")));
        return;
    }
    public boolean check(String[] urls,String requestURI){
        for(String url:urls){
            boolean match = PATH_MATCHER.match(url,requestURI);
            if(match){
                return true;
            }
        }
        return false;
    }
}

到此這篇關(guān)于SpringBoot實現(xiàn)登錄攔截的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot 登錄攔截內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • RocketMQ根據(jù)Tag進行消息過濾

    RocketMQ根據(jù)Tag進行消息過濾

    消費者訂閱了某個主題后,Apache RocketMQ 會將該主題中的所有消息投遞給消費者。若消費者只需要關(guān)注部分消息,可通過設置過濾條件在 Apache RocketMQ 服務端進行過濾,只獲取到需要關(guān)注的消息子集,避免接收到大量無效的消息
    2023-02-02
  • mybatis中返回主鍵一直為1的問題

    mybatis中返回主鍵一直為1的問題

    這篇文章主要介紹了mybatis中返回主鍵一直為1的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解Java中的延時隊列 DelayQueue

    詳解Java中的延時隊列 DelayQueue

    這篇文章主要介紹了Java中延時隊列 DelayQueue的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • springmvc的@Validated注解使用

    springmvc的@Validated注解使用

    這篇文章主要介紹了springmvc的@Validated注解使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Java面向?qū)ο笾蓡T隱藏與屬性封裝操作示例

    Java面向?qū)ο笾蓡T隱藏與屬性封裝操作示例

    這篇文章主要介紹了Java面向?qū)ο笾蓡T隱藏與屬性封裝操作,結(jié)合實例形式分析了Java面向?qū)ο蟪绦蛟O計中成員的隱藏及屬性封裝相關(guān)實現(xiàn)與使用操作技巧,需要的朋友可以參考下
    2018-06-06
  • SpringBoot實現(xiàn)全局異常的封裝和統(tǒng)一處理

    SpringBoot實現(xiàn)全局異常的封裝和統(tǒng)一處理

    在Spring Boot應用中,全局異常的處理是一個非常重要的方面,本文主要為大家詳細介紹了如何在Spring Boot中進行全局異常的封裝和統(tǒng)一處理,需要的可以參考下
    2023-12-12
  • 使用Java SDK實現(xiàn)離線簽名

    使用Java SDK實現(xiàn)離線簽名

    這篇文章主要介紹了使用Java SDK實現(xiàn)離線簽名,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • java中的定時器和多線程

    java中的定時器和多線程

    這篇文章主要介紹了java中的定時器和多線程用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot個性化啟動Banner設置方法解析

    SpringBoot個性化啟動Banner設置方法解析

    這篇文章主要介紹了SpringBoot個性化啟動Banner設置方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 一篇文章讓你弄懂Java運算符

    一篇文章讓你弄懂Java運算符

    java中位運算符主要有按位與&、按位或|、按位非~、按位異或^, 在使用時需要將運算數(shù)都轉(zhuǎn)換為二進制再進行運算,若為負數(shù)則使用補碼表示,這篇文章主要給大家介紹了關(guān)于Java運算符的相關(guān)資料,需要的朋友可以參考下
    2022-03-03

最新評論

平顺县| 梧州市| 汉川市| 蛟河市| 林口县| 涞水县| 朝阳县| 义乌市| 凌云县| 浙江省| 林芝县| 自治县| 钦州市| 宿松县| 罗定市| 甘泉县| 丹阳市| 麦盖提县| 治县。| 丰原市| 冷水江市| 延川县| 蓬莱市| 平武县| 工布江达县| 宁晋县| 乌拉特中旗| 抚顺市| 明光市| 慈溪市| 共和县| 台湾省| 芦山县| 获嘉县| 长子县| 临夏县| 丹巴县| 安岳县| 永川市| 漠河县| 巧家县|