2010-05-24 48 views
2

我試圖搜索與我的問題相關的任何以前的帖子,但無法找到任何。我有一個場景,在頁面處理3個不同的場景,其中一個不工作。此頁面根據用戶是否經過身份驗證或匿名返回不同的內容。春季安全 - 根據用戶角色提供不同內容的同一頁

本地主機:8080 /對myApp/muUrl試驗= authenticatedContent - >用於方案1 本地主機:8080 /對myApp/muUrl試驗= anonymousContent - >用於方案3 情景:

1)經過身份驗證的用戶訪問網頁網址 - 用戶顯示正確的信息。正常工作

2)匿名用戶訪問頁面URL,其中包含需要驗證的參數 - 如果是匿名用戶,則對他們正在訪問的內容進行二級檢查。例如,基於GET參數,有定製邏輯來確定用戶是否必須被認證。在這種情況下,頁面被重定向到登錄頁面(工作正常)。

3)匿名用戶訪問頁面網址的參數,不需要認證 - 在這種情況下,我得到了SAvedRequest和重定向到URL,使我無限循環。

我是否缺少一些非常明顯的內容,或者AuthenticationProcessFilterEntryPoint中有一種方法可以說「不要重定向到登錄頁面,而是處理它」?

謝謝。

+0

我遇到了類似的問題。你有沒有找到解決這個問題的辦法?如果是這樣,不要猶豫,在這裏分享。 – balteo 2012-09-26 12:01:06

回答

0

我終於找到了解決方案(有人在春季論壇上向我推薦了這個解決方案)。 的想法是這裏描述使用@PreAuthorize註釋中的控制器:see here

見代碼示例如下:

@RequestMapping("/") 
@PreAuthorize("isAuthenticated()") 
public String authenticatedHomePage() { 
    return "authenticatedHomePage"; 
} 

@RequestMapping("/") 
public String homePage() { 
    return "homePage"; 
}