Grails安全登录设计问题以及Library&数据库选择

时间:2010-10-12 05:21:22

标签: grails ssl groovy mongodb spring-security

我计划使用Grails和Grails的Spring Security Core插件构建用户管理模块。

另外,我正在考虑将MongoDB用于数据库系统。

问题(S):

(1)通过MySQL或HSQLDB选择MongoDB,我的应用会获得哪些权衡和好处?

(2)实现以下内容的应用程序(意味着第三方Grails API或插件和/或Spring API?)是否非常容易实现:

  • 新用户注册
  • 验证环节
  • 确认电子邮件
  • 忘记密码重置机制
  • 角色
  • SSL

(3)任何人都可以使用Grails指向如何使用Grails进行某些操作的教程吗?

(4)对于我的应用程序的用户管理模块,是否需要在NoSQL系统上使用标准RDBMS?

感谢您抽出宝贵时间阅读本文。

2 个答案:

答案 0 :(得分:0)

  1. 不是NoSql专家,但NoSql Storage在diriect读取(grails域类的get方法)方面效率更高,在复杂连接查询中速度较慢或者不支持agragation(max,min,avrg)
  2. Grails Security UI插件拥有一切
  3. http://burtbeckwith.github.com/grails-spring-security-ui/docs/manual/index.html
  4. Grails MongoDB插件为MongoDB实现GORM功能,所以一切都应该没问题(不直接测试)

答案 1 :(得分:0)

Spring Security UI插件处理新用户注册,确认电子邮件和忘记密码重置。 Spring Security Core插件当然处理角色,并且支持指定哪些URL需要SSL(请参阅通道支持上的文档,“17 Channel Security”部分)。

您可以自定义注册工作流程以包含验证码 - 我建议您使用 reCAPTCHA插件:http://grails.org/plugin/recaptcha

还有一个MongoDB插件:http://www.grails.org/plugin/gorm-mongodb

Core和UI插件使用的所有持久性都是可重写的,但默认情况下使用GORM并假设您正在使用RDBMS。但是如果您使用MongoDB或其他一些机制,则插入自己的内容很简单 - 例如,请参阅有关创建自定义UserDetailsS​​ervice的文档(http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/处的“11 Custom UserDetailsS​​ervice”部分)