Acegi 中得到用户信息详解

    Acegi 安全框架中也有Principal(负责人),Credentials(信任状)的概念,它们可以是任何对象,并由Authentication(证明,鉴定)对象封装,代表一个用户认证。Principal通常是用户名Credentials通常是口令,不过,在Acegi框架中,通常UserDetails作为Principal,除了存储了用户名外,UserDetails还包含了用户角色等权限信息。此外,Authentication对象还能存储一些与认证请求有关的附加信息,例如,用户的IP地址。

    一旦用户通过了认证,Authentication对象就将存储在HttpSession对象中,不过,HttpSession对象中,不过,HttpSession并非总是能被应用程序访问,因此,Acegi使用SecurityContext来存储Authentication,默认情况下,Acege使用ThreadLocal来实现SecurityContext。在应用程序中,任何时候获取Authentication对象的方式就是调用SecurityContextHolder.getContext().getAuthentication()。

 例如:
SecurityContext ctx = SecurityContextHolder.getContext();      
Authentication auth = ctx.getAuthentication();         
if(auth.getPrincipal() instanceof UserDetails)   
  user = (TUser)auth.getPrincipal(); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值