spring security3.0获得用户登陆后的信息!

chaohua20 2011-02-14 11:04:51
spring security3.0获得用户登陆后的信息!谁能告诉我怎么获得用户名,登陆IP!如果不登陆的话游客权限能不能获取IP?
...全文
702 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaohua20 2011-02-16
  • 打赏
  • 举报
回复
真的很谢谢大家!特别是楼下这位仁兄
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wangshiyang 的回复:]

引用 1 楼 wukaixin 的回复:
我们把安全主体和系统交互的信息都保存在
SecurityContextHolder
中了。 Spring Security使用一个
Authentication
对应来表现这些信息。 虽然你通常不需要自己创建一个
Authentication
对象, 但是常见的情况是,用户查询
Authentication
对象。你可以使用下面的代码 ……
[/Quote]


这有相关源代码
http://www.cnblogs.com/meetrice/archive/2009/08/04/1538441.html
wangshiyang 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wukaixin 的回复:]
我们把安全主体和系统交互的信息都保存在
SecurityContextHolder
中了。 Spring Security使用一个
Authentication
对应来表现这些信息。 虽然你通常不需要自己创建一个
Authentication
对象, 但是常见的情况是,用户查询
Authentication
对象。你可以使用下面的代码 - 在你程序中的任何位置 - 来获得已认证……
[/Quote]
这种做法就可以! 不过我感觉这位仁兄好像是C的吧!
用户查询的话是经常用,但是IP的话就没用过了! 以后留意下这方面的!
wukaixin 2011-02-14
  • 打赏
  • 举报
回复
我们把安全主体和系统交互的信息都保存在
SecurityContextHolder
中了。 Spring Security使用一个
Authentication
对应来表现这些信息。 虽然你通常不需要自己创建一个
Authentication
对象, 但是常见的情况是,用户查询
Authentication
对象。你可以使用下面的代码 - 在你程序中的任何位置 - 来获得已认证用户的名字, 比如:

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();

if (principal instanceof UserDetails) {
String username = ((UserDetails)principal).getUsername();
} else {
String username = principal.toString();
}调用
getContext()
返回的对象是一个
SecurityContext
接口的实例。 这个对象是保存在thread-local中的。如我们下面看到的,大多数Spring Security的验证机制 都返回一个
UserDetails
的实例 作为主体









------------------------------------------------------------------------------------------------
http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.shopfw.com网店服务

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧