我似乎无法找到如何在struts操作中获得对Spring Security(V3)SessionRegistry的引用。如何获得Spring Security SessionRegistry?
我已经配置了监听器里我的web.xml文件:
而且我试图用@Autowired注解把它变成一个行动:
@Autowired
private SessionRegistry sessionRegistry;
@Override
public String execute() throws Exception {
numberOfUsersLoggedin= sessionRegistry.getAllPrincipals().size();
return SUCCESS;
}
public SessionRegistry getSessionRegistry() {
return sessionRegistry;
}
public void setSessionRegistry(SessionRegistry sessionRegistry) {
this.sessionRegistry = sessionRegistry;
}
http配置看起来是这样的:
<session-management invalid-session-url="/public/login.do?login_error=expired"
session-authentication-error-url="/public/login.do"
session-fixation-protection="newSession">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
</session-management>
一般来说,我更舒服地连接春豆自己,不知道如何使用命名空间暴露这种情况。每次执行操作时,会话注册表都为空。
任何人都可以指出我在做什么错在这里,或让我看看如何通过一个例子吗?
在此先感谢任何/所有回复!
感谢您的链接。我将sessionRegistry bean添加到了我的Spring配置中,并且它在Struts操作中不再为空。但是,当我尝试获取登录用户的数量(登录时)时,sessionRegistry.getAllPrincipals()。size()的值;总是0.我正在阅读文档吗?这似乎是如果我使用自定义登录表单(我是 - 对LDAP进行身份验证),我不能使用上面指定的名称空间/自动配置会话管理。似乎我必须手动手动配置所有会话管理和并发控制? – Griff 2010-10-08 17:02:25
看着在线文档,我似乎无法弄清楚我的身份验证提供程序的名称是myAuthFilter的。我使用的命名空间不提供bean id ... \t authentication-manager> –
Griff
2010-10-08 18:38:41