我似乎無法找到如何在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