3

我正在使用Grails Spring Security Plugin 1.2.7.3并希望用户通过电子邮件地址和密码进行身份验证。我希望电子邮件地址成为主要登录 ID。

我遇到了以下关于不区分大小写的用户名的 Nabble 帖子,原始发帖人正试图这样做。但是,我对以下几点感到有些困惑:

  1. 我知道我需要编写自己的实现UserDetailsService并将其注册到grails-app/conf/spring/resources.groovy.

    但是,我不确定自定义实现UserDetailsService应该去哪个文件夹(最佳实践)。我的猜测是/grails-app/services,/grails-app/utils/src/groovy. 有没有人这样做过,哪里是定制的最佳地点UserDetailsService

    我在文档中阅读了这一章:http: //grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/11%20Custom%20UserDetailsS​​ervice.html但我并没有真正看到关于将其放入哪个 Grails 文件夹。

  2. 我通过 s2 命令创建了我的用户域类:

    s2-quickstart com.philiptenn.security User Role Requestmap
    

    如果我要重命名该字段User.usernameUser.email使我的代码更清晰,我会受到伤害吗?

    我在这个领域做了一个 Find Usages,一个在DefaultSecurityConfig.groovy中突出:userLookup.usernamePropertyName = 'username'

    我可以将其更新为: DefaultSecurityConfig.groovyuserLookup.usernamePropertyName = 'email'

谢谢你。

4

1 回答 1

4

正如您所指出的,您可以覆盖自己的默认安全配置Config.groovy,选项都以 开头grails.plugins.springsecurity,所以它是grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email'文档)。这是我要尝试的第一件事。如果您查看 GormUserDetailsS​​ervice 的来源,即默认的userDetailsS ​​ervice,您会看到它使用该属性进行查找。

于 2012-09-16T05:17:30.410 回答