Grails 1.1 认证

尽管现在认证没有默认机制,实际上有上千种方法可以执行认证。

然而,用 interceptors或 filters 实施一个简单的认证机制是没意义的。

过滤器运行你对所有的控制器或URI空间应用认证。

比如你可以在grailsapp/conf/SecurityFilters.groovy类中创建一组新过滤器如下:class SecurityFilters { def filters = { loginCheck(controller:'*', action:'*') { before = { if(!session.user && actionName != "login") { redirect(controller:"user",action:"login") return false } } } } }在请求处理执行之前,上述类中的loginCheck过滤器将拦截该执行动作。

假如session里没有一个用户而且请求被执行,该login请求处理不是自己转向到自己。

Login请求处理也是很小的:def login = { if(request.get) render(view:"login") else { def u = User.findByLogin(params.login) if(u) { if(u.password == params.password) { session.user = u redirect(action:"home") } else { render(view:"login", model:[message:"Password incorrect"]) } } else { render(view:"login", model:[message:"User not found"]) } } }