【发布时间】:2011-04-22 14:58:33
【问题描述】:
我似乎找不到如何在 Struts 操作中获取对 Spring Security (V3) SessionRegistry 的引用。
我已经在 web.xml 文件中配置了监听器:
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
我已经尝试使用@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>
一般来说,我更愿意自己连接 Spring bean,但不确定它是如何使用命名空间公开的。每次执行操作时,会话注册表为空。
谁能指出我在这里做错了什么,或者告诉我如何举个例子?
提前感谢任何/所有回复!
【问题讨论】:
标签: java session spring-security struts2