我找到了一个简单的grails auth的例子,其中在控制器中使用beforeInterceptor,如果他们没有登录则将用户重定向。它看起来像这样:
def beforeInterceptor = [action:this.&checkUser,except:['login']]
def checkUser() {
if(!session.user) {
redirect(controller:'home')
return false
}
}
如果您只有一个必须保护的控制器,这一切都很好。当你有一个以上的时候会发生什么?我不能将checkUser
方法放入服务中,因为服务无法重定向,并且可能没有session
对象。请帮忙
答案 0 :(得分:6)
您希望使用grails过滤器http://grails.org/doc/latest/ref/Plug-ins/filters.html
但我强烈建议你调查Grails Spring Security而不是
答案 1 :(得分:2)
Grails Filters应该做的伎俩。链接页面有一个使用过滤器进行身份验证的示例。