2014-09-30 96 views
1

當用戶沒有登錄,他輸入正確的URL登錄頁面,然後他登錄頁面,否則當用戶輸入其他網址時,他將被重定向到錯誤頁面,而不是重定向到登錄頁面。如何解決這個問題?重定向用戶登錄頁面,如果他們沒有登錄

+1

(如果有的話)的安全插件,你使用,你如何進行相應的配置是什麼? – 2014-09-30 10:40:19

+0

我在應用程序中有彈簧安全插件。每次它將我重定向到登錄頁面。 – 2014-09-30 11:08:27

+0

我的問題的第二部分如何?您是如何配置它的? [documentation](http://grails-plugins.github.io/grails-spring-security-core/guide/requestMappings.html)表明,默認情況下,您沒有專門打開的所有內容都將被禁止。 – 2014-09-30 12:00:08

回答

0

您必須在控制器中使用@Secure註釋。如果未經授權,這會將用戶重定向到登錄頁面。此代碼:

@Secured(AuthenticatedVoter.IS_AUTHENTICATED_FULLY) 
class CustomerController{ 
    .... 
} 

將重定向大家如何努力,除非它們在登錄訪問的客戶視圖頁面,他們將被重定向試圖訪問該頁面後到登錄頁面。雖然它只是一個簡單的身份驗證,通常你需要做的比這更多,但它會做你想做的。

0

關於第一個問題,上面的答案是好的,但如果你想限制更多 specfically,你可以使用這個太

首先,你應該安裝Grails的春季安全插件

class UserController { 

    // allow to access everyone 
    def index() { 
    } 

    @Secured([UserRole.ROLE_USER,UserRole.ROLE_ADMIN,...]) 
    def account() { 
    } 
} 

備註,如果您在班級頂部給予@Secured,將限制整個班級的訪問權限

關於第二個問題,你用UrlMapping,例如

"404"(controller:"yourController", action:"yourErrorPageAction") 
相關問題