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

时间:2010-12-10 04:24:22

标签: authentication grails

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

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

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

2 个答案:

答案 0 :(得分:6)

您希望使用grails过滤器http://grails.org/doc/latest/ref/Plug-ins/filters.html

但我强烈建议你调查Grails Spring Security而不是

答案 1 :(得分:2)

Grails Filters应该做的伎俩。链接页面有一个使用过滤器进行身份验证的示例。