从spring-Security获取存储的用户信息

spring-Security获取存储的用户信息

spring-Security获取存储的用户信息

获取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"/>
发布了7 篇原创文章 · 获赞 2 · 访问量 1183

猜你喜欢

转载自blog.csdn.net/weixin_41040866/article/details/105014097