2014-11-03 37 views
0

如何篩選指定頁面和控制器以進行登錄檢查?Grails如何使用篩選器進行頁面登錄檢查

而頁面是CMS中的配置,我想如果我想過濾頁面,我需要重命名CMS中的頁面名稱以便使用通配符來過濾。

還有其他更好的方法嗎?

+0

哪個插件用於登錄檢查。 – 2014-11-03 04:43:47

+0

我不使用插件 – 2014-11-03 05:15:54

+0

使用Spring Security Core插件。 http://grails.org/plugin/spring-security-core – saw303 2014-11-03 06:40:45

回答

0

例如,您的應用程序有兩個名爲login和customer的控制器。 登錄控制器有兩個操作。一個用於輸入登錄頁面和另一個用於驗證的操作。

class LoginController { 

    def index() { 
     render(view:'/loginPage') 
    } 

    def authenticate() { 
     //check username and password is valid. 
     if(valid){ // if valid store the user in session for check user logged in or not in filter or anywhere 
      session.loggedInUser = user 
      redirect(controller:'dashboard',action:'home') 
     } 
     else{ 
      def msg = "Login failed : Invalid Username/Password !" 
      render(view:'/loginPage',model:[msg:msg]) 
     } 
    } 

僅登錄後,我們可以允許訪問CustomerController。 對於首先創建過濾器,並在過濾器內複製以下內容。

allExceptLogin(controller:'login', action:'*',invert:true) { 
      before = { 
       if(!session.loggedInUser) { 
        def msg = "You Should Login" 
         render(view:'/loginPage',model:[msg:msg]) 
        return false 
       } 
      } 
} 

除登錄控制器外,每個控制器的訪問都需要在過濾器中檢查的有效用戶登錄。

相關問題