我想在登錄後存儲用戶信息並在每個頁面上顯示我的登錄名和用戶名(使用jsp)。我如何在我的jsp視圖中訪問會話bean,以存儲登錄用戶的信息?春季安全。在每個頁面上顯示用戶名
4
A
回答
10
這個標籤允許訪問存儲在 安全上下文當前 認證對象。它直接在 JSP中呈現對象的 屬性。因此,舉例來說,如果認證的主要 屬性是Spring Security的 的UserDetails的 對象實例,然後使用 <秒:認證 屬性=「principal.username」/>將 呈現當前用戶的名稱。
當然,它是沒有必要使用 JSP標籤這種東西和 有些人喜歡保持儘可能少 邏輯儘可能在視圖中。您可以 訪問在 你的MVC控制器的認證對象(通過調用 SecurityContextHolder.getContext()。getAuthentication()) 和直接的數據添加到您的 模型由視圖渲染。
1
這是與When using Spring Security, what is the proper way to obtain current username (i.e. SecurityContext) information in a bean?近似重複。 Spring認可的方法是
final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName();
但鏈接的討論有其他選擇。
3
我假設你正在使用彈簧安全。後成功登錄把UserDetails對象中,像這樣的會議(這通常是控制器,其中,如果登錄爲全成,你會向前)
Object principal = SecurityContextHolder.getContext()
.getAuthentication().getPrincipal();
HttpSession session = request.getSession(true); //create a new session
// put the UserDetails object here.
session.setAttribute("userDetails", principal);
在你的JSP可以訪問UserDetails對象,像這樣:
<span class="message">Welcome ${userDetails.username}</span>
相關問題
- 1. 春季安全只顯示登錄頁面的頁眉
- 2. 春季安全不顯示相應頁面
- 3. 春季安全登錄頁面超時
- 4. 春季安全登錄頁面 - 圖像
- 5. 春季安全登錄頁面?
- 6. 多個用戶的春季websocket安全
- 7. 春季安全3.2 - CSS顯示問題
- 8. 春季安全 - 顯示註銷消息
- 9. 強制用戶在春季安全
- 10. 在春季安全
- 11. 春季安全顯示訪問被拒絕的有效用戶
- 12. 春季安全
- 13. 春季安全
- 14. 春季安全:顯示錯誤頁面403,而不是登錄表單頁面非認證用戶
- 15. 春季安全用戶通過用戶名查詢與id_user
- 16. 春季安全和春季社交在不同的登錄頁面
- 17. 春季安全到用戶JPA連接
- 18. 春季安全用戶請求登錄
- 19. 春季安全用戶詳細信息
- 20. 春季安全檢查用戶有RoleGroup
- 21. 春季安全當前用戶線程
- 22. 春季安全:JDBC用戶查詢,PreparedStatementCallback
- 23. 春季安全標籤在錯誤頁面中不起作用
- 24. Vaadin春季安全
- 25. 春季安全mysuccessHandler
- 26. BCryptPasswordEncoder春季安全
- 27. 與春季安全
- 28. AccessDeniedException;春季安全
- 29. 春季安全badcredentials
- 30. 春季3.5安全