2013-04-15 169 views
0

我想驗證以下身份驗證問題可以使用Spring安全來解決 - 預認證場景:身份驗證使用彈簧安全 - 預認證方案

問題:

  1. 用戶通過登錄遺留系統
  2. 調用頁面到網站系統(Spring MVC中創建)
  3. 當調用網頁到網絡系統時(遺留系統)傳遞一個令牌,用戶名和USER_ROLE
  4. Web系統然後使用遺留系統提供的Web服務來驗證用戶名和令牌。
  5. 如果有效會話的網絡系統上創建和用戶能夠使用網頁否則用戶將被引導到一個錯誤頁面

我可以利用預認證場景映入安全提供? OR是否更容易創建Spring AOP方面來驗證令牌和用戶的有效性?

春季安全文檔不能很好地解釋預認證場景的正確使用。請指導我採取最佳路線。如果需要更多信息,請告訴我。

歡迎使用好的示例或鏈接。

+0

不知道你指的是哪些文件。請參閱:http://static.springsource.org/spring-security/site/docs/3.2.x/reference/preauth.html。只有3個預先驗證的案例(X.509,Siteminder和J2EE容器驗證)可以使用開箱即用的功能。在你的情況下,你必須編寫(1)你的過濾器實現(獲取令牌和用戶名並構建一個授權令牌)和(2)驗證提供者(驗證和授予權限)。 – Ritesh

+0

@Ritesh你有能力提供一個例子嗎? – Khush

+0

看到這個問題http://stackoverflow.com/questions/4783063/configuring-spring-security-3-x-to-have-multiple-entry-points寫你自己的認證令牌和認證提供者。 – Ritesh

回答

1

是遺留系統和web系統2不同的應用程序?

基本上我認爲你想在另一個Web應用程序中的舊系統中的用戶創建登錄會話。一種自動登錄到第二個系統。 Spring Security可以幫助您,但您必須使用它對OAuth 1.0或2.0的支持。 http://static.springsource.org/spring-security/oauth/

https://github.com/SpringSource/spring-security-oauth/wiki/oauth1

我使用OAuth1.0類似的場景相當一段時間了。在我的頭上的頂部我認爲 OAUTH具有預定義步驟 1)一種消費者要求一個驗證令牌 2)服務器提供請求令牌 3)消費者要求令牌來授權 4)接着它通過驗證令牌並要求對於訪問令牌 5)一旦它獲得它可以請求服務器上的目標網址,並授予訪問權限。

它比我寫的更復雜,但關於spring oauth支持的好處是spring處理令牌位,並且您必須執行最小編碼。 希望這回答你的問題。

+0

是@Soumya,遺留系統和網絡系統是兩種不同的應用程序。你能提供一個例子嗎? – Khush

+0

http://stackoverflow.com/questions/14522634/spring-security-oauth-2-simple-example http://www.javacodegeeks.com/2012/02/oauth-with-spring-security.html還有更多。我目前沒有用於執行的現成代碼。但是,如果您在OAuth彈簧支持周圍挖掘,則您將在幾個地方登陸 – Soumya

+0

我們正在尋找單一登錄方法。理想情況下,我們只想通過遺留系統登錄一次。 – Khush

0

用戶使用舊系統登錄後,您可能會在服務器端生成認證令牌,該認證令牌將存儲在數據庫中,並在用戶端存儲在Cookie或localStorage中。然後通過這個令牌每個請求,並在我的答案在這裏描述的一個預驗證過濾器中檢查它:https://stackoverflow.com/a/37204764/1562234