欢迎来到天天文库
浏览记录
ID:37898033
大小:75.50 KB
页数:4页
时间:2019-06-02
《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()+"";//第二个参数表示是否取单点登录时,超出限
此文档下载收益归作者所有