2014-11-03 33 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 
       } 
      } 
} 

除登录控制器外,每个控制器的访问都需要在过滤器中检查的有效用户登录。

相关问题