Spring Security获取所有登录用户的IP

Spring Security获取所有登录用户的IP

ID:37898033

大小:75.50 KB

页数:4页

时间:2019-06-02

Spring Security获取所有登录用户的IP_第1页
Spring Security获取所有登录用户的IP_第2页
Spring Security获取所有登录用户的IP_第3页
Spring Security获取所有登录用户的IP_第4页
资源描述:

《Spring Security获取所有登录用户的IP》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在springsecurity3中获取所有登录用户的信息,包括比较难找的IP一:如果单纯获取当前登录用户的信息,那么简单,只要认证成功了,在任何地方使用:importorg.springframework.security.core.Authentication;importorg.springframework.security.core.GrantedAuthority;importorg.springframework.security.core.context.SecurityContextHolder;impor

2、torg.springframework.security.web.authentication.WebAuthenticationDetailsimportorg.springframework.security.core.userdetails.User//auth包含两个很重要的对象1:Details2:PrincipalAuthenticationauth=SecurityContextHolder.getContext().getAuthentication();//Details可转换为WebAuthentic

3、ationDetails//wauth包含着1:remoteAddress2:sessionIdWebAuthenticationDetailswauth=(WebAuthenticationDetails)auth.getDetails();System.out.println("当前登录用户的ip:"+wauth.getRemoteAddress());System.out.println("当前登录用户的sessionID:"+wauth.getSessionId());//Principal可转换为User//u包

4、含登录账户和权限,扩展此对象可以让其包含更多信息,像真实姓名,所在部门,用户id...Useru=(User)auth.getPrincipal();System.out.println("当前登录用户的账号:"+u.getUsername());System.out.println("当前登录用户的权限:"+u.getAuthorities());System.out.println("当前登录用户的姓名(扩展User之后才能使用):"+u.getId());二:如果是想获取所有登录用户的信息,也不复杂,所有的登录用户都

5、保存在SessionRegistry上,所有只要变量此对象就能获取所有在线用户,获取它也简单,只要用spring注入就可以了代码如下:packagecom.baodian;importjava.text.Format;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.List;importorg.springframework.beans.factory.annotation.Autowired;importorg.springfra

6、mework.security.core.session.SessionInformation;importorg.springframework.security.core.session.SessionRegistry;importorg.springframework.security.core.userdetails.User;importorg.springframework.stereotype.Component;@Component("getUser")publicclassGetUser{@Autowir

7、ed//利用spring注入后就可以取所有登录用户,不能加static属性,否则会取不到privateSessionRegistrysessionRegistry;privateFormatft=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");publicvoidfindlgUser(){Listslist=sessionRegistry.getAllPrincipals();Stringjson="共"+slist.size()+"用户登录,服务器时间:"+ft.for

8、mat(newDate())+"";for(inti=0;i"+"账号:"+u.getUsername()+"";//第二个参数表示是否取单点登录时,超出限

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。