亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

如果我們不進(jìn)行登錄攔截的話,即使我們跳過登錄頁面直接去訪問任意一個(gè)頁面也能訪問成功,那么登錄功能就沒有意義,同時(shí)也會(huì)存在安全問題,因?yàn)橛行┎僮魇且脩舻卿浐蟛拍軋?zhí)行的,如果用戶沒有登錄,該接口就獲取不了當(dāng)前訪問的用戶也就不知道是哪個(gè)用戶執(zhí)行了該操作就會(huì)出錯(cuò)。所以我們要進(jìn)行登錄判斷,如果沒有登錄則訪問任意頁面都跳轉(zhuǎn)到登錄頁面。

代碼實(shí)現(xiàn)

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

具體實(shí)現(xiàn)

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

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.獲取本次請(qǐng)求的URI
        String requestURI = request.getRequestURI();
        //定義不需要處理的請(qǐng)求路徑,下面的*只是字符串,并不是通配符,后面通過check判斷時(shí)*號(hào)就視為通配符了
        String[] urls = new String[]{
                "/employee/login",
                "/employee/logout",
                "/backend/**",
                "/front/**"
        };
        //2.判斷本次請(qǐng)求是否需要處理
        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é)果,通過輸出流方式向客戶端頁面響應(yīng)數(shù)據(jù),因?yàn)槲覀兎祷氐氖莢oid,所以不能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實(shí)現(xiàn)登錄攔截的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot 登錄攔截內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-plus使用TableNameHandler分表詳解(附完整示例源碼)

    Mybatis-plus使用TableNameHandler分表詳解(附完整示例源碼)

    這篇文章主要介紹了Mybatis-plus使用TableNameHandler分表詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java實(shí)現(xiàn)默認(rèn)目錄查看與修改的方法

    Java實(shí)現(xiàn)默認(rèn)目錄查看與修改的方法

    本項(xiàng)目介紹了Java如何獲取和修改默認(rèn)目錄,并通過示例代碼展示了如何在默認(rèn)目錄下創(chuàng)建和操作文件,盡管Java無法直接更改全局默認(rèn)目錄,但可以通過System.setProperty間接影響部分API的默認(rèn)行為,需要的朋友可以參考下
    2025-03-03
  • mybatis實(shí)現(xiàn)mapper配置并查詢數(shù)據(jù)的思路詳解

    mybatis實(shí)現(xiàn)mapper配置并查詢數(shù)據(jù)的思路詳解

    這篇文章主要介紹了mybatis實(shí)現(xiàn)mapper配置并查詢數(shù)據(jù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 簡(jiǎn)單了解spring bean作用域?qū)傩詓ingleton和prototype的區(qū)別

    簡(jiǎn)單了解spring bean作用域?qū)傩詓ingleton和prototype的區(qū)別

    這篇文章主要介紹了簡(jiǎn)單了解spring bean作用域?qū)傩詓ingleton和prototype的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java?函數(shù)式編程梳理

    Java?函數(shù)式編程梳理

    這篇文章主要介紹了Java?函數(shù)式編程梳理,文章通過Lambda表達(dá)式展開詳細(xì)的內(nèi)容介紹,具有一定參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Spring中的事務(wù)操作、注解及XML配置詳解

    Spring中的事務(wù)操作、注解及XML配置詳解

    這篇文章主要給大家介紹了關(guān)于Spring中事務(wù)操作、注解及XML配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • java高效實(shí)現(xiàn)大文件拷貝功能

    java高效實(shí)現(xiàn)大文件拷貝功能

    這篇文章主要為大家詳細(xì)介紹了java高效實(shí)現(xiàn)大文件拷貝功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    本文詳細(xì)介紹了使用Vue和SpringBoot實(shí)現(xiàn)token認(rèn)證的方法,包括前后端交互流程、后端依賴導(dǎo)入、token工具類、攔截器、跨域處理、前端路由守衛(wèi)、請(qǐng)求攔截器等內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • Java中的裝箱和拆箱深入理解

    Java中的裝箱和拆箱深入理解

    裝箱和拆箱是java中老生常談的問題,下面小編通過本文給大家介紹java裝箱和拆箱最基本的東西,感興趣的朋友一起看下吧
    2016-07-07
  • Java中SpringBoot自定義Starter詳解

    Java中SpringBoot自定義Starter詳解

    這篇文章主要介紹了Java中SpringBoot自定義Starter詳解,Starter是Spring Boot中的一個(gè)非常重要的概念,Starter相當(dāng)于模塊,它能將模塊所需的依賴整合起來并對(duì)模塊內(nèi)的Bean根據(jù)環(huán)境進(jìn)行自動(dòng)配置,需要的朋友可以參考下
    2023-07-07

最新評(píng)論