2012-05-15 37 views
2

我們有一些購物車頁面,可同時處理來賓和用戶路徑。我們希望允許用戶在此過程中隨時登錄,但並不想真正創建另一個登錄頁面。我更喜歡我們可以簡單地將用戶重定向到現有的登錄名並告訴Spring Security返回的URL。手動爲Spring安全提供引薦URL

我知道這會自動發生時會話超時和/或受保護的頁面請求沒有會話,但是有沒有辦法讓我自己的網址給Spring Security?

回答

2

如果您只需要一個簡單的返回URL來檢索購物車,那麼您最好自己在AuthenticationSuccessHandler中實施。你可以看看SimpleUrlAuthenticationSuccessHandler及其父母的靈感來源。

默認的登錄機制使用RequestCacheSavedRequest,但是這意味着實際上會重播不會被授權的請求。這可能是在你的情況下矯枉過正。

+0

我不明白這個解決方案是它是一個成功處理程序,我需要在Spring Security中找到一些東西來告訴它返回的URL。所以,即使我創建了自己的處理程序,如果我沒有告訴它在成功之後要做什麼,這一點是沒有意義的。而且我並不總是從這個方向進來。 – Gregg

+0

我不確定我真的理解這個問題。您似乎只是在詢問如何在登錄後重定向到已知的URL。如果是這樣,那麼您只需要一些方法來存儲要在重定向到登錄頁面之前返回的URL。你如何做到這一點真的取決於你。如果您已經有購物車會話,那麼存儲該會話的明顯位置就在會話中。你唯一需要「進入Spring Security」的是'AuthenticationSuccessHandler'。在處理程序實現中,您只需檢索存儲的URL並重定向到它。 –

+0

嗯,是的,我已經做到了。但我實際上是在尋找更加整合的東西。雖然現在夠好了。 – Gregg