您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Spring Security中如何動態更新已登錄用戶信息,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
我和大家詳細分享了 Spring Security 的登錄流程,在登錄成功的最后一步,進入到 successfulAuthentication 回調中,在該回調方法中,小伙伴們看到了用戶信息的保存位置:
SecurityContextHolder.getContext().setAuthentication(authResult);
這樣一行簡單的保存代碼,至少帶給我們兩方面的信息:
SecurityContextHolder.getContext().getAuthentication()
就可以獲取到。SecurityContextHolder.getContext().setAuthentication(authResult);
就可以更新。用戶信息的獲取,其實辦法很多,上面提到的 SecurityContextHolder.getContext().getAuthentication()
是一個靜態方法,也就是利用這個方法,我們可以隨時隨地拿到用戶信息(需要注意 ThreadLocal 的限制)。
除了這種方式之外,我們也可以在 Controller 中的方法上,直接就可以注入 Authentication 對象,進而獲取到當前用戶信息,像下面這樣:
@GetMapping("/hr/info")
public Hr getCurrentHr(Authentication authentication) {
return ((Hr) authentication.getPrincipal());
}
當然,關于用戶信息獲取的方式之前已經和大家聊過了,這里我就不再贅述,如果對如何獲取 Spring Security 中用戶信息還不熟悉,大家可以參考松哥之前的文章:松哥手把手帶你捋一遍 Spring Security 登錄流程
今天主要是想和大家聊一下如何修改用戶信息。
在 Spring Security 中,當用戶登錄成功之后,如果前端提供了修改用戶信息的功能,在前端修改完用戶信息之后,存儲在 Spring Security 中的用戶信息也要及時修改,以防止在后面其他的請求中獲取到錯誤的用戶信息。
關于Spring Security中如何動態更新已登錄用戶信息就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。