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

spring用戶通過交互界面登錄成功的實現

 更新時間:2023年07月20日 10:15:45   作者:路過君_P  
本文主要介紹了spring用戶通過交互界面登錄成功的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

版本

spring-security-web:5.6.7

源碼

用戶通過前端交互界面登錄成功觸發(fā)此事件

org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent

事件觸發(fā)過程

用戶名密碼認證過濾器
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter

public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter 

認證處理過濾器
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter

private void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
    throws IOException, ServletException {
    if (!requiresAuthentication(request, response)) {
        chain.doFilter(request, response);
        return;
    }
    try {
        // 嘗試對請求進行認證
        Authentication authenticationResult = attemptAuthentication(request, response);
        if (authenticationResult == null) {
            return;
        }
        this.sessionStrategy.onAuthentication(authenticationResult, request, response);
        // 認證成功
        if (this.continueChainBeforeSuccessfulAuthentication) {
            chain.doFilter(request, response);
        }
        successfulAuthentication(request, response, chain, authenticationResult);
    }
    catch (InternalAuthenticationServiceException failed) {
        this.logger.error("An internal error occurred while trying to authenticate the user.", failed);
        unsuccessfulAuthentication(request, response, failed);
    }
    catch (AuthenticationException ex) {
        // Authentication failed
        unsuccessfulAuthentication(request, response, ex);
    }
}
// 默認的認證成功處理行為
// 1. 將認證對象設置到安全上下文
// 2. 通知RememberMe服務
// 3. 發(fā)布交互認證成功事件
// 4. 執(zhí)行成功處理器
protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain,
    Authentication authResult) throws IOException, ServletException {
    SecurityContext context = SecurityContextHolder.createEmptyContext();
    context.setAuthentication(authResult);
    SecurityContextHolder.setContext(context);
    if (this.logger.isDebugEnabled()) {
        this.logger.debug(LogMessage.format("Set SecurityContextHolder to %s", authResult));
    }
    this.rememberMeServices.loginSuccess(request, response, authResult);
    if (this.eventPublisher != null) {
        this.eventPublisher.publishEvent(new InteractiveAuthenticationSuccessEvent(authResult, this.getClass()));
    }
    this.successHandler.onAuthenticationSuccess(request, response, authResult);
}

到此這篇關于spring用戶通過交互界面登錄成功的實現的文章就介紹到這了,更多相關spring 交互界面登錄內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • IntelliJ IDEA 2019.2 x64的安裝、應用與簡單配置(圖文)

    IntelliJ IDEA 2019.2 x64的安裝、應用與簡單配置(圖文)

    這篇文章主要介紹了IntelliJ IDEA 2019.2 x64的安裝、應用與簡單配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Spring的實例工廠方法和靜態(tài)工廠方法實例代碼

    Spring的實例工廠方法和靜態(tài)工廠方法實例代碼

    這篇文章主要介紹了Spring的實例工廠方法和靜態(tài)工廠方法實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 快速學習JavaWeb中監(jiān)聽器(Listener)的使用方法

    快速學習JavaWeb中監(jiān)聽器(Listener)的使用方法

    這篇文章主要幫助大家快速學習JavaWeb中監(jiān)聽器(Listener)的使用方法,感興趣的小伙伴們可以參考一下
    2016-09-09
  • idea創(chuàng)建maven父子工程導致子工程無法導入父工程依賴

    idea創(chuàng)建maven父子工程導致子工程無法導入父工程依賴

    創(chuàng)建maven父子工程時遇到一個問題,本文主要介紹了idea創(chuàng)建maven父子工程導致子工程無法導入父工程依賴,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • java 較大數據量取差集,list.removeAll性能優(yōu)化詳解

    java 較大數據量取差集,list.removeAll性能優(yōu)化詳解

    這篇文章主要介紹了java 較大數據量取差集,list.removeAll性能優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java JSP開發(fā)之Spring中Bean的使用

    java JSP開發(fā)之Spring中Bean的使用

    這篇文章主要介紹了java JSP開發(fā)之Spring中Bean的使用的相關資料,在Spring中,bean的生命周期就比較復雜,這里就詳細介紹下,需要的朋友可以參考下
    2017-08-08
  • Java適配器模式的實現及應用場景

    Java適配器模式的實現及應用場景

    適配器模式是Java中一種常用的設計模式,它通過將一個類的接口轉換成客戶端所期望的另一種接口來實現不同接口之間的兼容性。適配器模式主要應用于系統(tǒng)的接口不兼容、需要擴展接口功能以及需要適應不同環(huán)境的場景
    2023-04-04
  • 劍指Offer之Java算法習題精講鏈表專項訓練

    劍指Offer之Java算法習題精講鏈表專項訓練

    跟著思路走,之后從簡單題入手,反復去看,做過之后可能會忘記,之后再做一次,記不住就反復做,反復尋求思路和規(guī)律,慢慢積累就會發(fā)現質的變化
    2022-03-03
  • springboot使用線程池(ThreadPoolTaskExecutor)示例

    springboot使用線程池(ThreadPoolTaskExecutor)示例

    大家好,本篇文章主要講的是springboot使用線程池(ThreadPoolTaskExecutor)示例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • SpringBoot配置全局異常處理器捕獲異常詳解

    SpringBoot配置全局異常處理器捕獲異常詳解

    spring-boot統(tǒng)一異常捕獲,異常時相對于return的一種退出機制,可以由系統(tǒng)觸發(fā),下面這篇文章主要給大家介紹了關于SpringBoot配置全局異常處理器捕獲異常的相關資料,需要的朋友可以參考下
    2023-04-04

最新評論