自定义acegi的Authentication对象?

[code="java"]UsernamePasswordAuthenticationToken authen = new UsernamePasswordAuthenticationToken(

username, password);

WebAuthenticationDetails webdetails = new WebAuthenticationDetails(

request);

WebAuthenticationDetails

authen.setDetails(webdetails);

SecurityContextHolder.getContext().setAuthentication(authen);

[/code]
系统登录的时候调用一个Servlet根据Username从数据库取出User对象填充进上述代码,然后写了个过滤器在进行数据的拦截,但是双面的数据在过滤器使用SecurityContextHolder.getContext()
.getAuthentication().getPrincipal();无法得到填充的数据

4个回答

[code="java"]String loginName = request.getUserPrincipal().getName();[/code]
直接这样写试试看

加一个filter, HttpSessionContextIntegrationFilter.它的作用是在web请求之间把SecurityContext存储在HttpSession中。

不要在web.xml里面加
[code="xml"]

security
org.acegisecurity.util.FilterToBeanProxy

targetClass
org.acegisecurity.util.FilterChainProxy


security
/*

[/code]

去你spring环境里面
[code="xml"]


<!-- IMPORTANT: DON'T LINEBREAK THE FILTER LIST, OR ELSE BEAN LOOKUP BREAKS! -->
<!-- I'M JUST DOING IT HERE FOR DISPLAY PURPOSES -->

CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=httpSessionContextIntegrationFilter,logoutFilter,
authenticationProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor



class="org.acegisecurity.context.HttpSessionContextIntegrationFilter"/>

[/code]

可以看看我的Acegi系列教程:
http://zhanjia.iteye.com/category/43399

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Authentication
Here is a part from a book for OS authentication and password file authentication : rnrnCreate the password file using the password utility.rnrn$ orapwd file=$ORACLE_HOME/dbs/orapwU15rn password=admin entries=5rnrnSet the REMOTE_LOGIN_PASSWORDFILE parameter to EXCLUSIVErnrnAdd users to the password file.rnrnWhere:rnEXCLUSIVE: Indicates that only one instance can use the password file and that the password file contains names other than SYS. Using an EXCLUSIVE password file you can grant SYSDBA or SYSOPER privileges to individual users.rnrnrnI also read that REMOTE_LOGIN_PASSWORDFILE can be set as SHARED and NONE.rnrnMy questions are rn1) What is the difference among EXCLUSIVE, SHARED and NONE of REMOTE_LOGIN_PASSWORDFILE. I didn't understand the words in those books.rn2) How to add users to the password file.rn3) How to check up which kind of Authentication on Oracle.rn
acegi
http://heaven-robin.iteye.com/blog/120950
acegi
acegi-cn中文
Acegi
官方的学习文档,官方网慢时,就可以在这里下载了!
ACEGI
不错的ACEGI 教程
Acegi学习笔记--Acegi详解实战Acegi实例
Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解Acegi学习笔记--Acegi详解
ldap与Acegi? ----Acegi配置文件解剖
被解剖的acegi配置文件. 博文链接:https://rmn190.iteye.com/blog/175041
spring security 获取Authentication对象为null
大家好,本人在用spring做一个系统日志管理功能,需要获取当前用户信息,以下是代码:rn[code=Java]rnSecurityContext securityContext = SecurityContextHolder.getContext(); rn if (securityContext != null) rn Authentication auth = securityContext.getAuthentication(); rn if (auth != null) rn Object principal = auth.getPrincipal(); rn if (principal instanceof UserDetails) rn user=(User) (UserDetails)principal; rn rn else rn loger.warn("WARN: securityContext cannot be lookuped using SecurityContextHolder."); rn rn rnrnrnrnrn[/code]rnrnrn但是在Authentication auth = securityContext.getAuthentication(); 时,返回的Authentication对象为NULL,rn这种问题如何解决,谢谢!
Authentication心得
那位高手大哥给我发点Authentication心得的例子吧!C#。NET的!谢啦!
acegi实例,acegi详细配置和代码实现
acegi实例,acegi详细配置和代码实现
spring Acegi
Spring安全系统:Acegi Security Acegi简介! Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。 安全涉及到两个不同的概念,认证和授权。前者是关于确认用户是否确实是他们所宣称的身份。授权则是关于确认用户是否有允许执行一个特定的操作。 在Acegi安全系统中,需要被认证的用户,系统或代理称为"Principal"。Acegi安全系统和其他的安全系统不同,它并没有角色和用户组的概念。 附件描述的是一个简单的案例。用的是数据库的包
spring acegi
acegi spring security前子项目
Acegi 学习
ECM(Enterprise content management) , ECM 的一个普遍的解决方案是通过URL来实现访问控制的。Acegi提供了根据URL,实现访问控制的特性。Acegi也提供了方法访问控制的特性。 Acegi过滤器通过配置,可以做到: 1、当用户需要访问一个安全资源时,引导用户登录 2、通过检查用户的口令令牌,来认证用户信息 3、检查获得认证的用户是否有权限...
Acegi 例子
Acegi 例子Acegi 例子Acegi 例子Acegi 例子Acegi 例子Acegi 例子
acegi total
博文链接:https://caco.iteye.com/blog/150088
Spring Acegi
NULL 博文链接:https://zw7534313.iteye.com/blog/434206
acegi jar包
acegi jar包,挺好用的东西。 我也是学习当中,大家一块学。
Acegi框架介绍 acegi安全与认证
acegi 框架 介绍 spring 安全
Acegi 使用手册
acegi..................................
acegi rememberMe
NULL 博文链接:https://weigang-gao.iteye.com/blog/2234232
Acegi学习
NULL 博文链接:https://qinchaoyong.iteye.com/blog/647245
acegi学习笔记
acegi学习笔记 要10个字 晕
acegi配置文件
acegi配置文件清单
Acegi开发指南.
Acegi开发指南.Acegi开发指南.Acegi开发指南.Acegi开发指南.Acegi开发指南.Acegi开发指南.Acegi开发指南.Acegi开发指南.Acegi开发指南.
学习ACEGI
1.建立一个MyEclipse的WebProject,把下列jar文件拷贝到项目的WEB-INF/lib目录: acegi-security-1.0.3.jar spring2.0.jar commons-codec-1.3.jar 2.修改WEB-INF下的web.xml文件,内容如下: Java代码 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;g...
acegi验证码
详细描述了acegi的验证码功能如何使用
acegi的问题。。。。
rn [color=#FF0000] [/color]rn rnrnrn 这里边的key值是和哪里的字段对应呢???高人帮帮忙 rn
acegi SecurityContextHolder.getContext()
在jsp页面里,Object obj =SecurityContextHolder.getContext().getAuthentication();rnobj值是null。rn但是我的认证已经成功的,if (event instanceof AuthenticationSuccessEvent)的值是true。rn并且在我的一个自定义的监听器响事件记录用户登录日志的LoginSuccessListener,代码如下:rnpublic class LoginSuccessListener implements ApplicationListener rn public void onApplicationEvent(ApplicationEvent event) rn if (event instanceof AuthenticationSuccessEvent) // ①判断是否是认证成功的事件rn AuthenticationSuccessEvent authEvent = (AuthenticationSuccessEvent) event;rn Authentication auth = authEvent.getAuthentication();rn String userName = auth.getName();rn // ②这里,我们仅通过一条输出信息的语句模拟记录登录日志的操作rn System.out.println("模拟记录用户[" + userName + "]成功登录日志...");rn Object obj = SecurityContextHolder.getContext().getAuthentication();rn if (null != obj)rn System.out.println("模拟记录用户[" + userName + "]成功登录日志...");rn rn elsern System.out.println("模拟记录用户[" + userName + "]登录日志失败...");rn rn rnrnrn经测试,其中obj的值是不空的。n[b]问题补充:[/b]n我的applicationContext-acegi-security.xml已经有了HttpSessionContextIntegrationFilterrnrn代码如下:rn rn rn rn rn CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISONrn PATTERN_TYPE_APACHE_ANTrn /**=HttpSessionContextIntegrationFilter,authenticationProcessingFilter,filterInvocationInterceptorrn rn rn rnrn rn rn
acegi问题
我在做一个项目,用ibatis2+struts2+spring2,安全框架用到了acegi来控制权限。这里是身份认证Filter的配置rnrn rn rn rn rn rnrn我在一个jsp写 rn 为什么点击提交后报404错误 rn HTTP Status 404 - /项目名/login/j_acegi_security_check
Acegi(四):Acegi初体验及初解剖
NULL 博文链接:https://rmn190.iteye.com/blog/332711
acegi笔记
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp;lt;!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/spring-beans.dtd&quot;&amp;gt; &amp;lt;beans&amp;gt; &amp;lt;!-- =
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法