spring security中当前用户信息
来源:互联网 发布:淘宝宝贝综合排名 编辑:程序博客网 时间:2024/06/05 06:09
1:如果在jsp页面中获取可以使用spring security的标签库
在页面中引入标签
1
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
然后:
1
<div> username : <sec:authentication property="name"/></div>
即可显示当前用户。
2:如果要在程序中获得
看了网上很多写法都是在程序中写这样的代码
1
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication() .getPrincipal();
但我在实际运用中发现获得的Authentication为null。仔细看了下源代码发现,如果想用上面的代码获得当前用户,必须在spring
security过滤器执行中执行,否则在过滤链执行完时org.springframework.security.web.context.SecurityContextPersistenceFilter类会
调用SecurityContextHolder.clearContext();而把SecurityContextHolder清空,所以会得到null。 经过spring security认证后,
security会把一个SecurityContextImpl对象存储到session中,此对象中有当前用户的各种资料
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SecurityContextImpl securityContextImpl = (SecurityContextImpl) request
.getSession().getAttribute("SPRING_SECURITY_CONTEXT");
// 登录名
System.out.println("Username:"
+ securityContextImpl.getAuthentication().getName());
// 登录密码,未加密的
System.out.println("Credentials:"
+ securityContextImpl.getAuthentication().getCredentials());
WebAuthenticationDetails details = (WebAuthenticationDetails) securityContextImpl
.getAuthentication().getDetails();
// 获得访问地址
System.out.println("RemoteAddress" + details.getRemoteAddress());
// 获得sessionid
System.out.println("SessionId" + details.getSessionId());
// 获得当前用户所拥有的权限
List<GrantedAuthority> authorities = (List<GrantedAuthority>) securityContextImpl
.getAuthentication().getAuthorities();
for (GrantedAuthority grantedAuthority : authorities) {
System.out.println("Authority" + grantedAuthority.getAuthority());
}
0 0
- spring security中当前用户信息
- 在Spring Security中获取当前用户信息
- spring security 获取当前用户信息
- spring security 获取当前用户信息
- spring security 获取当前用户信息
- spring boot +security获取当前登录用户信息
- 解决 CAS + Spring Security整合 无法获取当前登录用户信息
- spring Security获取用户信息
- Spring Security中在Controller中获得用户信息
- 整合Spring Security3,在JSP中获取当前登陆用户信息
- spring security获取所有登录的用户信息
- spring security在页面获取用户信息
- Spring Security 3 用户信息的问题
- Spring security获取当前用户
- 关于Spring Security 3获取用户信息的问题
- Spring Security+OAuth2 + JWT认证以及携带用户信息
- Spring Security 4 (02)—— 用户信息
- spring security 无法获取当前登录信息
- JavaScript 基础笔记 4流程控制
- Java并发系列-24、线程池
- 几款Ubuntu下的终端扩展工具推荐
- android textview系统默认的颜色值是多少
- u-center 配置u-blox GPS芯片
- spring security中当前用户信息
- java中double类型显示两个小数,比如12.00
- 数据结构实验2-不带头结点的单链表
- 事物的描述--信息
- Spark SQL CLI
- Android中的动画
- Codeforces 501D Misha and Permutations Summation
- 3D bin picking
- oracle行转列函数