2013-05-11 50 views
0

我已經啓用安全我的應用程序,而這些受保護的資源不能被訪問,除非用戶登錄。如何使用會話的屬性在Java應用程序中

不過,我需要運行我的Java應用程序中的多個測試。我想知道是否可以從登錄頁面(瀏覽器)登錄到我的應用程序,使用其會話ID,並獲得我的測試的驗證對象(Java應用程序)?

如果有幫助,我使用彈簧安全。

我在尋找一般的想法,如果需要時間來解釋如何去做。

回答

0

Spring Security的Authentication具有當前用戶的主體和授權角色的句柄。它可以通過訪問:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); 

Spring的RequestAttributes對當前會話ID的句柄。它可以使用訪問:

RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); 
String sessionId = attributes.getSessionId(); 

這項工作提供RequestContextFilter已在web.xml中配置。

+0

感謝您的回覆。但是,您應該知道TEST-APPLICATION是獨立運行的。所以它可能既不知道也不能訪問'SecurityContextHolder'。沒有辦法,使用'session-id',檢索它並使用它的內容? – 2013-05-13 05:41:04

相關問題