获取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