獲取spring-security登錄者信息的三種方式


方式1:在后台通過session獲取:
```
public String showUsername(HttpServletRequest request){
//通過SecurityContextHolder獲得當前線程上綁定的SecurityContext對象
SecurityContext context = SecurityContextHolder.getContext();
//也可以通過session獲得SecurityContext對象
SecurityContext context_session = (SecurityContext)
request.getSession().getAttribute("SPRING_SECURITY_CONTEXT");
//證明線程綁定的SecurityContext與session域中存儲的SecurityContext是同一個
System.out.println(context==context_session);2、獲得用戶名方式二:
在頁面中通過el表達式從session域中獲得
3、獲得用戶名方式三:
在頁面中通過SpringSecurity的標簽直接獲得
4、在header.jsp中顯示用戶名
//獲得Authentication認證對象
Authentication authentication = context_session.getAuthentication();
//獲得User對象
User user = (User) authentication.getPrincipal();
//獲得用戶名
return user.getUsername();
}


方式2:在前端通過el表達式獲取:
        ```
    ${sessionScope.SPRING_SECURITY_CONTEXT.authentication.principal.username}

方式3:在前端通過使用security標簽直接獲取:
```
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="security"%>
<security:authentication property="principal.username"/>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM