`
firedragon
  • 浏览: 72000 次
  • 性别: Icon_minigender_1
  • 来自: 广西
文章分类
社区版块
存档分类
最新评论

请教acegi的 SecurityContextHolder.getContext();取值为空的问题

阅读更多
在使用acegi时,登录取得登录用户信息时取得的值为null

public TUser getUser() 
    {
        //取得登录用户
        SecurityContext ctx = SecurityContextHolder.getContext();    
        Authentication auth = ctx.getAuthentication();       
        if(auth.getPrincipal() instanceof UserDetails)
        {
            user = (TUser)auth.getPrincipal();  
            //log.debug("\nauth.getPrincipal()==============\n"+user.getUserid());            
        }    
        
        return user;
    }




java.lang.NullPointerException
	com.firedragon.struts.base.action.BaseDispatchAction.getUser(BaseDispatchAction.java:125)



可是从DEBUG的信息来看

[2007-01-17 23:51:32]DEBUG org.springframework.web.context.support.XmlWebApplicationContext(line:215) -Publishing event in context [Root WebApplicationContext]: org.acegisecurity.event.authentication.AuthenticationSuccessEvent[source=org.acegisecurity.providers.UsernamePasswordAuthenticationToken@aaf3d2: Username: com.firedragon.hibernate.model.TUser@ba2b6b[用户名:=admin, enabled:=true, accountExpired:=true, credentialsExpired:=true, accountLocked:=true,受权角色: ,ROLE_11]; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@16d8a64: RemoteIpAddress: 127.0.0.1; SessionId: 8AECD601C138A1E87458F770333028E8; Granted Authorities: ROLE_11]

[2007-01-17 23:51:32]WARN  org.acegisecurity.event.authentication.LoggerListener(line:60) -Authentication event AuthenticationSuccessEvent: admin; details: org.acegisecurity.ui.WebAuthenticationDetails@16d8a64: RemoteIpAddress: 127.0.0.1; SessionId: 8AECD601C138A1E87458F770333028E8

[2007-01-17 23:51:32]DEBUG org.acegisecurity.ui.AbstractProcessingFilter(line:392) -Authentication success: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@aaf3d2: Username: com.firedragon.hibernate.model.TUser@ba2b6b[用户名:=admin, enabled:=true, accountExpired:=true, credentialsExpired:=true, accountLocked:=true,受权角色: ,ROLE_11]; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@16d8a64: RemoteIpAddress: 127.0.0.1; SessionId: 8AECD601C138A1E87458F770333028E8; Granted Authorities: ROLE_11

[2007-01-17 23:51:32]DEBUG org.acegisecurity.ui.AbstractProcessingFilter(line:398) -Updated SecurityContextHolder to contain the following Authentication: 'org.acegisecurity.providers.UsernamePasswordAuthenticationToken@aaf3d2: Username: com.firedragon.hibernate.model.TUser@ba2b6b[用户名:=admin, enabled:=true, accountExpired:=true, credentialsExpired:=true, accountLocked:=true,受权角色: ,ROLE_11]; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@16d8a64: RemoteIpAddress: 127.0.0.1; SessionId: 8AECD601C138A1E87458F770333028E8; Granted Authorities: ROLE_11'

[2007-01-17 23:51:32]DEBUG org.acegisecurity.ui.AbstractProcessingFilter(line:416) -Redirecting to target URL from HTTP Session (or default): /News/main.html
[2007-01-17 23:51:32]DEBUG org.springframework.web.context.support.XmlWebApplicationContext(line:215) -Publishing event in context [Root WebApplicationContext]: org.acegisecurity.event.authentication.InteractiveAuthenticationSuccessEvent[source=org.acegisecurity.providers.UsernamePasswordAuthenticationToken@aaf3d2: Username: com.firedragon.hibernate.model.TUser@ba2b6b[用户名:=admin, enabled:=true, accountExpired:=true, credentialsExpired:=true, accountLocked:=true,受权角色: ,ROLE_11]; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@16d8a64: RemoteIpAddress: 127.0.0.1; SessionId: 8AECD601C138A1E87458F770333028E8; Granted Authorities: ROLE_11]

[2007-01-17 23:51:32]WARN  org.acegisecurity.event.authentication.LoggerListener(line:60) -Authentication event InteractiveAuthenticationSuccessEvent: admin; details: org.acegisecurity.ui.WebAuthenticationDetails@16d8a64: RemoteIpAddress: 127.0.0.1; SessionId: 8AECD601C138A1E87458F770333028E8

[2007-01-17 23:51:32]DEBUG org.acegisecurity.context.HttpSessionContextIntegrationFilter(line:276)[color=red]--------SecurityContext stored to HttpSession------[/color]: 'org.acegisecurity.context.SecurityContextImpl@aaf3d2: Authentication: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@aaf3d2: Username: com.firedragon.hibernate.model.TUser@ba2b6b[用户名:=admin, enabled:=true, accountExpired:=true, credentialsExpired:=true, accountLocked:=true,受权角色: ,ROLE_11]; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@16d8a64: RemoteIpAddress: 127.0.0.1; SessionId: 8AECD601C138A1E87458F770333028E8; Granted Authorities: ROLE_11'

[2007-01-17 23:51:32]DEBUG org.acegisecurity.context.HttpSessionContextIntegrationFilter(line:285) [color=red]-------SecurityContextHolder set to new context-----[/color], as request processing completed



-------SecurityContext stored to HttpSession------
------SecurityContextHolder set to new context----
上面这里应该把用户信息放到session里去了,请教什么地方出来问题可能导致取不到值?

分享到:
评论
4 楼 wshert1688 2007-04-03  
大哥这个问题也困扰了我一天,不过今天解决啦
大家都挺难的
http://wiki.springside.org.cn/display/springside/Chapter+2.+Technical+Overview
你现看看这个文章
HttpSessionContextIntegrationFilter在HTTP之间存储SecurityContext
加上HttpSessionContextIntegrationFilter这个就行啦,在Filter链条上
3 楼 jamesby 2007-01-29  
我不是很了解,能把配置文件贴出来?然后把你的认证的代码也贴出来
2 楼 wutao8818 2007-01-28  
(User) ctx.getAuthentication().getPrincipal();
1 楼 firedragon 2007-01-20  
问题的解决办法

相关推荐

    acegi-context-cas.xml

    acegi与cas集成 <!-- ========= Acegi as a CAS Client的配置============= --> class="org.acegisecurity.ui.cas.CasProcessingFilter"> ref="authenticationManager" /> value="/login.do?...

    Acegi使用.pdf

    不同于传统的安全框架,Acegi采用了面向切面编程(AOP)的方式来处理认证和授权问题,这使得它能够与业务代码保持高度的解耦,同时也赋予了开发人员更多的灵活性来定制安全策略。本文将深入探讨Acegi的关键组件、...

    如何在Spring中集成Acegi 2.x安全框架

    在Spring框架中集成Acegi 2.x安全框架,可以实现高度可定制的权限管理和认证机制。Acegi(现已被Spring Security 2.0所取代)是Spring的一个扩展,提供了全面的安全解决方案,包括用户身份验证、访问控制、会话管理...

    acegi认证,授权

    学习acegi的第一步, <bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy"> PATTERN_TYPE_APACHE_ANT /**=httpSessionContextIntegrationFilter,basicProcessingFilter,...

    acegi-security.jar.zip

    Acegi Security是一个已退役的安全框架,它在Java社区中曾被广泛使用,特别是在Spring Framework早期版本中,作为提供身份验证和授权服务的重要组件。Acegi Security后来被Spring Security所吸收和替代,后者现在是...

    acegi在spring中的完整配置

    Acegi 安全框架是 Spring 生态系统早期的安全解决方案,它为基于 Java 的 Web 应用程序提供了全面的身份验证和授权服务。随着 Spring Security 的发展,Acegi 已被 Spring Security 继承并进一步增强,但理解 Acegi ...

    acegi-sample.rar_acegi-1.0.7_acegi-sample.part2_spring-1.2.4.jar

    Acegi Security是一个已不再维护但曾经非常流行的Java安全框架,专为基于Spring的应用程序设计。在本文中,我们将深入探讨Acegi Security的核心概念、功能以及它如何与Spring框架集成,以便实现强大的权限管理和用户...

    acegi-security

    acegi-security.jar包,

    grails-acegi-0.5.zip

    Grails Acegi 0.5插件,作为一个针对Grails框架的安全管理插件,为开发者提供了一种强大且灵活的方式来实现权限控制和身份验证。本文将对这个插件进行详细的解读,包括其核心概念、功能、使用方法以及在实际项目中的...

    使用acegi控制用户权限实例

    总之,Acegi Security为Spring应用程序提供了一套强大的安全框架,通过精细的控制权衡了用户认证和授权。虽然已被Spring Security所取代,但其核心理念和机制仍然是理解现代Web应用安全的重要基础。通过深入理解...

    acegi-security-0.8.1.1.jar.zip

    这个"acegi-security-0.8.1.1.jar.zip"文件是Acegi Security 0.8.1.1版本的归档包,包含了该版本的核心库文件——"acegi-security-0.8.1.1.jar",以及相关的许可证文件——"springframework-license.txt"。...

    acegi_help.zip_Help!_acegi

    "acegi.pdf"可能是Acegi官方文档或者详细教程,包含了更全面的技术细节,包括如何配置安全拦截器,处理会话管理,以及与其他Spring模块的集成等。 "www.pudn.com.txt"可能是一个链接或者引用来源,通常这样的文本...

    Acegi 详细配置说明

    Acegi是Spring Security的前身,它是一个非常强大的安全框架,用于Java企业级应用的安全控制。在本文中,我们将深入探讨Acegi的详细配置,并通过实际示例来理解其工作原理。 首先,我们要明白Acegi的核心功能是提供...

    acegi源码解读.txtacegi源码解读.txtacegi源码解读.txt

    acegi的安全模型始于web.xml中的配置,其中定义了`FilterToBeanProxy`,目标类为`FilterChainProxy`,这表明Spring Security通过Spring容器管理安全相关的过滤器。`targetBean`值对应于Spring上下文中的bean名称,这...

    ldap与Acegi? ----Acegi配置文件解剖

    **LDAP与Acegi安全框架** 在企业级应用中,安全认证和授权是至关...随着Acegi Security演变为Spring Security,虽然配置方式有所变化,但核心概念和逻辑仍然相同,这对于理解和迁移现有的Acegi配置同样具有指导意义。

    acegi-sample.rar_acegi

    Acegi Security,现已被Spring Security所取代,是Java EE应用程序中的一个强大且灵活的安全框架,主要用于处理Web应用程序的安全性问题。这个"acegi-sample.rar_acegi"项目提供了一个详细的示例,帮助开发者理解并...

    acegi-2.rar

    3. **会话管理(Session Management)**:AceGI可以监控和管理用户会话,防止会话劫持和超时问题。它还支持会话固定保护,预防会话固定攻击。 4. **过滤器链(Filter Chain)**:AceGI的核心是安全过滤器链,它在...

    Acegi_db1.rar_acegi

    Acegi_db1.rar_acegi 是一个与Acegi安全框架相关的压缩包,它可能包含了用于数据库配置和安全策略实现的源代码以及相关的说明文档。Acegi是Spring Security的前身,是一个非常重要的Java安全框架,主要用于企业级...

Global site tag (gtag.js) - Google Analytics