2014-10-29 178 views
1

我在開發一個項目時遇到了一個問題。 我有一些課程鏈接在我的應用程序的頁腳,並且每當用戶點擊相同時,我們會向他顯示登錄或註冊彈出(如果他沒有登錄)或重定向到課程頁面(如果他已登錄)。 所以,現在我想要的是,只要用戶在登錄前點擊課程,他/她就應該在登錄後重定向到課程詳細信息頁面。使用彈簧安全登錄重定向到特定URL後

我使用spring security進行身份驗證。讓我知道如何使用spring安全認證來實現這一點?

回答

0

這是微不足道的用例。

您在頁腳中的鏈接應該是「安全區域」(例如「.../secured/page1」,「.../secured/page2」)。您在security-beans.xml中配置什麼是「安全區域」。

當用戶單擊並嘗試訪問受保護的資源時,spring會檢查用戶是否已通過身份驗證。如果沒有,它會將他重定向到登錄頁面。 (在登錄頁面中,您可以添加鏈接到「創建帳戶」)。

你這是怎麼配置的「安全區」:

<sec:http authentication-manager-ref="authenticationManager"> 
    <sec:intercept-url pattern="/secured/**" access="ROLE_USER" /> 
    ... 

春保存「重定向URL」,如果用戶沒有在他登錄被重定向到登錄頁面,登錄後Spring使用「重定向uri」並將他發送到「受保護資源」,這是您案例中的課程頁面。詳細信息:登錄後,類SavedRequestAwareAuthenticationSuccessHandler使用RequestCache保存原始請求URI。

如果你需要彈出,看到以下內容:Spring security opening a popup login

+0

是的,你是對的,但我的情況有點不同。如果他/她點擊課程鏈接然後登錄,我需要將用戶發送到課程詳細信息頁面。如果他直接登錄,他將按照我們的流程 – 2014-10-29 17:12:13

+0

被重定向到主頁,您曾經說過,無論何時用戶在登錄前點擊課程,他都應該在登錄後重定向到課程詳細信息頁面。如果是這樣的話,我已經更新了我的答案 - 看看。 – OhadR 2014-10-30 06:44:26

+0

讓我告訴你這種情況:我的登錄頁面上有一些鏈接,登錄表單(我使用的是彈簧安全性)。現在,當用戶直接登錄時,他/她將登錄並將被重定向到主頁。但是,如果用戶在登錄之前點擊鏈接,則會彈出一個彈出窗口,用戶可以從那裏登錄,但現在我們需要將其重定向到其他頁面。我怎樣才能做到這一點?如果你有任何正在運行的演示請提供 – 2014-10-30 17:27:03

相關問題