2011-06-27 21 views

回答

6

從3.1.0(目前是beta版)開始,它將在命名空間中支持多個<http>元素。

所以答案很簡單:

在3.1.X肯定。

In 3.0.5.RELEASE no。

更長aswer:

Here is additional info,請在評論中也鏈接。


我有一次類似的問題,因爲我有多個入口點。

IMO的一個好方法是創建一個新的登錄頁面,它決定將哪個登錄頁面重定向到甚至調用其他入口點的邏輯。然後,您可以將春季指向新頁面。

我敢肯定,這可以在過濾器鏈內完成,但我不會推薦它,因爲您需要大量的手動編碼和bean定義。通常我不認爲3.0.5是爲多個入口點設計的。

1

有了多個<http../>元素,您可以實現大部分想要的功能,但身份驗證管理器將會很常見,這意味着身份驗證提供程序將會很常見。在Spring Security 3.1.0.RC1: With multiple elements why can I only register one authentication manager?之後查看@David Parks面臨的問題。

您可以看到我對類似問題(如Configuring Spring Security 3.x to have multiple entry pointsAuthenticate user using external webservice in grails)的回答,以開發自定義代碼以執行特定於入口點的身份驗證提供程序。這也可以在3.0.5中實現。

您可以在沒有多個<http../>元素的情況下在3.0.5中實施解決方案,但您需要開發自定義代碼來處理註銷和錯誤頁面。

+0

您可以在3.1.3.RELEASE中執行。 –

+0

是的。我在回答http://stackoverflow.com/questions/8306063/multiple-login-forms-different-authentication-managers-latest-spring-security時指出了這一點 – Ritesh

1

還有org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint 自3.0.2起。 它可能有幫助。