繁体   English   中英

Grails Spring Security Custom UserDetailsS​​ervice(电子邮件的目标代替用户名)

[英]Grails Spring Security Custom UserDetailsService (goal of Email in place of Username)

我正在使用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的最佳位置?

    我在Docs中阅读了这一章: 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.email字段重命名为User.username ,以便我的代码更清晰,那么我是否会受到伤害?

    我在这个字段上找了一个Find userLookup.usernamePropertyName = 'username' ,并在DefaultSecurityConfig.groovy中找到了一个: userLookup.usernamePropertyName = 'username'

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

谢谢。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM