精通Grails: 身份验证和授权 - 编程入门网
精通Grails: 身份验证和授权时间:2011-08-02 IBM Scott Davis在本文中,我将继续构建一个“微型博客” Blogito。我删除了此前文章(“用定制 URI 和 codec 优化 Grails 中的 URI”)中的 User,因为 name 字段是 URI 的重要组成部分。这一次我们将实现完整 的 User 子系统。您将理解到如何根据 User 是否登录启用登录、限制用户行为,甚至根据 User 的角色 添加一些授权。 首先,User 需要一种登录方式,从而能够发布新的条目。 身份验证 对于支持多个用户的博客服务器来说,进行身份验证是个好主意。您肯定不希望 John Doe 以 Jane Smith 的身份发布博客条目,不管是有意还是无意。设置身份验证基础设施将回答这个问题:“您是谁? ”,稍后,您还将添加一些授权机制。授权将回答关于 “允许您做什么” 的问题。 清单 1 展示了您在 在上一篇文章 中创建的 grails-app/domain/User.groovy 文件: 清单 1. User 类
login 和 password 字段已经就绪。您现在只需要提供一个控制器和一个表单。创建 grails- app/controllers/UserController.groovy 并添加如清单 2 所示的代码: 清单 2. 将 login、authenticate 和 logout 闭包添加到 UserController
精通Grails: 身份验证和授权(2)时间:2011-08-02 IBM Scott Davis空的 login 闭包仅仅表示在您的浏览器中访问 http://localhost:9090/blogito/user/login 将呈现 grails-app/views/user/login.gsp 文件(您稍后即将创建该文件)。 authenticate 闭包使用了一个方便的 GORM 方法(findByLoginAndPassword() )执行需要的操作: 在数据库中查找 User,该 User 的 login 和 password 匹配表单字段中输入的值,并通过 params hashmap 使用户可用。如果 User 存在的话,将它添加到会话中。如果不存在的话,重定向回登录表单以 允许 User 再一次提供正确的凭证。logout 闭包将执行 User 退出,将他或她从会话中删除,然后重定 向回 EntryController 中的 list 操作。 现在让我们开始创建 login.gsp。可以手动输入清单 3 中所示的代码,或者可以执行下面的操作: 在命令行输入 grails generate-views User。 将 create.gsp 复制到 login.gsp。 简化生成的代码。 清单 3. login.gsp
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |