欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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;
    }
}

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

相關文章

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

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

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

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

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

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

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

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

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

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

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

    Spring中的事務操作、注解及XML配置詳解

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

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

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

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

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

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

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

    Java中SpringBoot自定義Starter詳解

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

最新評論