`
youlq
  • 浏览: 84069 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

[原创]使用Acegi时获取用户信息的几个函数

阅读更多
Acegi框架通过ThreadLocal存放用户信息,因此可以通过以下函数获取相关信息:

  /** *//**
   * 取得当前用户名
   * 
@return
   
*/

  
public static String getUsername(){
    Context context
=ContextHolder.getContext();
    
if(context!=null){
      
if(context instanceof SecureContext){
        SecureContext sc
=(SecureContext)context;
        Authentication auth
=sc.getAuthentication();
        
if(auth!=null){
          Object principal
=auth.getPrincipal();
          
if(principal instanceof UserDetails) {
            
return ((UserDetails)principal).getUsername();
          }
else{
            
return principal.toString();
          }

        }

      }

    }

    
return null;
  }

  
/** *//**
   * 取得当前用户密码
   * 
@return
   
*/

  
public static String getPassword(){
    Context context
=ContextHolder.getContext();
    
if(context!=null){
      
if(context instanceof SecureContext){
        SecureContext sc
=(SecureContext)context;
        Authentication auth
=sc.getAuthentication();
        
if(auth!=null){
          Object principal
=auth.getPrincipal();
          
if(principal instanceof UserDetails) {
            
return ((UserDetails)principal).getPassword();
          }
else{
            
return null;
          }

        }

      }

    }

    
return null;
  }

  
/** *//**
   * 取得当前用户session id
   * 
@return sessionid or null
   
*/

  
public static String getSessionID(){
    Context context
=ContextHolder.getContext();
    
if(context!=null){
      
if(context instanceof SecureContext){
        SecureContext sc
=(SecureContext)context;
        Authentication auth
=sc.getAuthentication();
        
if(auth!=null){
          Object details
=auth.getDetails();
          
if(details instanceof WebAuthenticationDetails) {
            
return ((WebAuthenticationDetails)details).getSessionId();
          }
else{
            
return null;
          }

        }

      }

    }

    
return null;
  }

分享到:
评论

相关推荐

    使用acegi控制用户权限实例

    - 如果验证成功,Acegi创建一个`Authentication`对象,包含已验证的用户信息。 - `SecurityContextHolder`将这个`Authentication`对象存储起来,供后续的授权检查使用。 2. **授权过程**: - 授权是通过`...

    spring acegi 使用工程demo

    这个"spring acegi 使用工程demo"显然是一个示例项目,旨在帮助开发者理解和实践如何在Spring应用中集成和使用Acegi安全框架。 首先,Acegi是Spring Security的前身,后来被Spring Security所取代,但它的概念和...

    acegi

    Acegi 是一个在Java开发领域,特别是Spring框架中曾经广泛使用的安全组件,全称为Acegi Security。这个系统为Spring应用程序提供了全面的安全管理解决方案,包括身份验证、授权、会话管理以及安全事件处理等功能。...

    Acegi使用.pdf

    5. **RunAsManager**:在执行某些操作时,可以有选择性地替换当前的Authentication对象,以实现“作为”另一个用户运行代码的能力。 6. **SecureObject拦截器**:协调AuthenticationManager、AccessDecisionManager...

    acegi的使用

    Acegi 安全系统是一个专为基于 Spring 的应用设计的安全框架,它提供了全面的描述性安全保护。Acegi 使用 Servlet 过滤器来保护 Web 应用,通过身份认证和授权来确保系统的安全性。该框架利用了 Spring 框架的依赖...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for Spring,当前版本为 0.8.3。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应

    4. **UserDetailsService**: 提供用户详细信息的服务,通常从数据库或其他数据源获取用户信息。 5. **RoleHierarchy**: 角色层级关系,可以定义角色之间的继承关系。 在实际应用中,我们首先需要在Spring配置文件中...

    使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi Security,现已被Spring Security所取代,是Spring框架生态系统中的一个强大安全组件,用于构建安全的Web应用程序。本文将深入探讨如何利用Acegi来增强基于Spring的应用程序的安全性,并结合给定的资源进行...

    acegi使用说明acegi原理及如何与spring、hibernate结合

    Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...

    Acegi-spring安全框架

    Acegi可以从登录表单、Cookie等来源获取用户信息,自动生成Authentication实例。Authentication的getPrincipal()方法返回一个代表用户的对象,通常可以转化为UserDetails类型。 Acegi框架的这种设计使安全控制变得...

    Acegi例子代码+一个很好的学习Acegi的网址

    1. **Acegi例子代码**:这个例子代码可能包含了一个简单的Spring应用,演示了如何配置和使用Acegi进行安全控制。通过运行此示例,你可以了解Acegi的配置过程以及如何在实际应用中集成。 2. **学习网址**:提供了一...

    权限Acegi的使用

    5. **会话管理**:Acegi提供了会话管理功能,如会话固定攻击防护、会话超时检测和并发会话控制,以防止恶意用户同时使用同一用户的多个会话。 6. **事件监听**:Acegi允许监听和处理安全相关的事件,如登录成功、...

    Acegi框架介绍 acegi安全与认证

    SecurityContextHolder作为全局的安全上下文容器,保存了每个用户的SecurityContext,其中包含了用户信息和权限。 Acegi Security框架的强大之处在于它的灵活性和扩展性。开发者可以在不改变业务逻辑的情况下,通过...

    Spring Acegi权限控制

    在使用Spring Acegi进行权限控制时,主要涉及以下几个组件: 1. **安全拦截器(Security Interceptor)**:这是Acegi的核心组件,它根据配置的规则对请求进行拦截,决定是否允许访问。 2. **认证管理器...

    基于java的ACEGI

    6. **处理异常**:配置Acegi的异常处理机制,当用户尝试访问未授权的资源或认证失败时,提供适当的反馈。 Acegi虽然已被Spring Security取代,但它的设计理念和核心功能在Spring Security中得以延续和强化。理解...

    acegi实现用户权限

    3. **UserDetailsService**:用于获取用户信息的服务接口,通常从数据库或其他数据源加载用户信息。 4. **AccessDecisionManager**:根据预定义的访问策略,决定用户是否有权访问特定资源。 5. **...

    ACEGI

    Acegi Security是一个专门为Spring框架设计的权限控制框架,旨在为基于J2EE的企业级应用程序提供全面的安全服务。这个框架解决了J2EE规范中安全性配置不便于移植的问题,使得应用程序的安全设置能够在不同服务器环境...

Global site tag (gtag.js) - Google Analytics