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

spring security登錄成功后通過Principal獲取名返回空問題

 更新時間:2024年03月22日 10:50:52   投稿:jingxian  
這篇文章主要介紹了spring security登錄成功后通過Principal獲取名返回空問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

spring security登錄成功通過Principal獲取名返回空

如上圖:

前端登錄后獲取用戶信息,principal 返回空值,經(jīng)歷種種排查發(fā)現(xiàn),前端請求后端,請求頭沒有加  bearer

按上圖配置問題解決

spring security principal credentials authorities details authenticated

spring security在進行認證時,會將用戶名和密碼封裝成一個Authentication對象,在進行認證后,會將Authentication的權(quán)限等信息填充完全返回。

Authentication會被存在SecurityContext中,供應(yīng)用之后的授權(quán)等操作使用。

此處介紹下Authentication,Authentication存儲的就是訪問應(yīng)用的用戶的一些信息。

下面是Authentication源碼

public interface Authentication extends Principal, Serializable {
    //用戶的權(quán)限集合
    Collection<? extends GrantedAuthority> getAuthorities();
 
    //用戶登錄的憑證,一般指的就是密碼
    Object getCredentials();
 
    //用戶的一些額外的詳細信息,一般不用
    Object getDetails();
 
    //這里認為Principal就為登錄的用戶
    Object getPrincipal();
 
    //是否已經(jīng)被認證了
    boolean isAuthenticated();
 
    //設(shè)置認證的狀態(tài)
    void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException;
}

講解了Authentication后,我們回過頭來再看attemptAuthentication方法,該方法會調(diào)用AuthenticationManager的authenticate方法進行認證并返回一個填充完整的Authentication對象。

在這里我們又要講解一下認證的幾個核心的類,很重要!

  • a). AuthenticationManager  
  • b).ProviderManager  
  • c).AuthenticationProvider  
  • d).UserDetailsService  
  • e).UserDetails

來說一下這幾個類的作用以及關(guān)聯(lián)關(guān)系

  • a). AuthenticationManager是一個接口,提供了authenticate方法用于認證。
  • b). AuthenticationManager有一個默認的實現(xiàn)ProviderManager,其實現(xiàn)了authenticate方法。
  • c). ProviderManager內(nèi)部維護了一個存有AuthenticationProvider的集合,ProviderManager實現(xiàn)的authenticate方法再調(diào)用這些AuthenticationProvider的authenticate方法去認證,表單提交默認用的AuthenticationProvider實現(xiàn)是DaoAuthenticationProvider。
  • d). AuthenticationProvider中維護了UserDetailsService,我們使用內(nèi)存中的用戶,默認的實現(xiàn)是InMemoryUserDetailsManager。UserDetailsService用來查詢用戶的詳細信息,該詳細信息就是UserDetails。UserDetails的默認實現(xiàn)是User。查詢出來UserDetails后再對用戶輸入的密碼進行校驗。校驗成功則將UserDetails中的信息填充進Authentication中返回。校驗失敗則提醒用戶密碼錯誤。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用SpringEvent解決WebUploader大文件上傳解耦問題

    使用SpringEvent解決WebUploader大文件上傳解耦問題

    Spring Event是Spring框架內(nèi)建的一種發(fā)布/訂閱模式的實現(xiàn),它允許應(yīng)用內(nèi)部不同組件之間通過事件進行通信,本文以WebUploader大文件上傳組件為例,在大文件處理的場景中使用SpringEvent的事件發(fā)布機制,靈活的擴展對文件的處理需求,需要的朋友可以參考下
    2024-07-07
  • Springboot處理配置CORS跨域請求時碰到的坑

    Springboot處理配置CORS跨域請求時碰到的坑

    本篇文章介紹了我在開發(fā)過程中遇到的一個問題,以及解決該問題的過程及思路,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot中@RequestBody不能和Multipart同時傳遞的問題解決

    SpringBoot中@RequestBody不能和Multipart同時傳遞的問題解決

    本文主要介紹了SpringBoot中@RequestBody不能和Multipart同時傳遞的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • java web監(jiān)聽器統(tǒng)計在線用戶及人數(shù)

    java web監(jiān)聽器統(tǒng)計在線用戶及人數(shù)

    本文主要介紹了java web監(jiān)聽器統(tǒng)計在線用戶及人數(shù)的方法解析。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • 在Java生產(chǎn)環(huán)境下進行性能監(jiān)控與調(diào)優(yōu)的詳細過程

    在Java生產(chǎn)環(huán)境下進行性能監(jiān)控與調(diào)優(yōu)的詳細過程

    在Java生產(chǎn)環(huán)境下進行性能監(jiān)控與調(diào)優(yōu)是一個復(fù)雜但重要的過程,它涉及到多個方面,包括代碼分析、JVM監(jiān)控、線程管理、垃圾收集優(yōu)化、內(nèi)存管理、數(shù)據(jù)庫交互等,下面我將提供一個詳細的概述和示例代碼,需要的朋友可以參考下
    2025-02-02
  • Spring MVC文件配置以及參數(shù)傳遞示例詳解

    Spring MVC文件配置以及參數(shù)傳遞示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring MVC文件配置以及參數(shù)傳遞的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java實現(xiàn)多線程斷點下載

    Java實現(xiàn)多線程斷點下載

    這篇文章主要為大家詳細介紹了Java實現(xiàn)多線程斷點下載的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • IDEA中maven依賴報紅的問題解決辦法

    IDEA中maven依賴報紅的問題解決辦法

    這篇文章主要給大家介紹了關(guān)于IDEA中maven依賴報紅的問題解決辦法,在使用IDEA過程中,經(jīng)常會出現(xiàn)maven依賴報紅的問題,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • 關(guān)于eclipse中運行tomcat提示端口被占用的4種解決

    關(guān)于eclipse中運行tomcat提示端口被占用的4種解決

    這篇文章主要介紹了關(guān)于eclipse中運行tomcat提示端口被占用的4種解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • java刪除文件夾下所有文件示例分享

    java刪除文件夾下所有文件示例分享

    這篇文章主要介紹了java刪除文件夾下所有文件示例,需要的朋友可以參考下
    2014-02-02

最新評論