grails:可重用的身份验证拦截器

mko*_*yak 3 authentication grails

我找到了一个简单的grails auth示例,其中在控制器中使用beforeInterceptor,如果用户未登录,则将用户重定向.它看起来像这样:

  def beforeInterceptor = [action:this.&checkUser,except:['login']]
  def checkUser() {
    if(!session.user) {
      redirect(controller:'home')
      return false
    }
  }
Run Code Online (Sandbox Code Playgroud)

如果您只有一个必须保护的控制器,这一切都很好.当你有一个以上的时候会发生什么?我不能将该checkUser方法放入服务中,因为服务无法重定向,并且可能没有该session对象.请帮忙

Aar*_*ers 6

你想使用grails过滤器,http://grails.org/doc/latest/ref/Plug-ins/filters.html

但我强烈建议你转而研究Grails Spring Security