Grails Spring Security自定义UserDetailsService(以电子邮件代替用户名的目标)
我使用的是Grails Spring Security自定义UserDetailsService(以电子邮件代替用户名的目标),grails,spring-security,Grails,Spring Security,我使用的是grailspring安全插件1.2.7.3,希望用户通过电子邮件地址和密码进行身份验证。我想将电子邮件地址作为主要登录ID 我遇到了以下问题,原来的海报也在尝试这样做。然而,我在几点上有点困惑: 我知道我需要编写自己的userdetailssservice实现,并在grailsapp/conf/spring/resources.groovy中注册它 但是,我不确定UserDetailsService的自定义实现应该放在哪个文件夹(最佳实践)。我猜要么是/grails-app/serv
grailspring安全插件1.2.7.3
,希望用户通过电子邮件地址和密码进行身份验证。我想将电子邮件地址作为主要登录ID
我遇到了以下问题,原来的海报也在尝试这样做。然而,我在几点上有点困惑:
userdetailssservice
实现,并在grailsapp/conf/spring/resources.groovy
中注册它
但是,我不确定UserDetailsService
的自定义实现应该放在哪个文件夹(最佳实践)。我猜要么是/grails-app/services
,/grails-app/utils
,要么是/src/groovy
。以前有人这样做过吗?定制userdetails服务的最佳位置在哪里
我在文档中读了这一章:但我并没有真正看到关于将其放入Grails文件夹的指导
s2-quickstart com.philiptenn.security User Role Requestmap
如果我将User.username
字段重命名为User.email
,以便代码更清晰,我会受到伤害吗
我找到了这个字段的用法,其中一个在DefaultSecurityConfig.groovy中突出显示:userLookup.usernamePropertyName='username'
我可以将此更新为:
DefaultSecurityConfig.groovy:userLookup.usernamePropertyName='email'
多谢各位 正如您所指出的,您可以覆盖您自己的
Config.groovy
中的默认安全配置,所有选项都以grails.plugins.springsecurity
开头,因此它将是grails.plugins.springsecurity.userLookup.usernamePropertyName='email'
()。这是我要做的第一件事。如果您查看默认的userDetailsService的源,您将看到它使用该属性进行查找。谢谢,成功了,我现在正在使用电子邮件。还有一个问题。。。我应该把一个定制的Spring安全UserDetailsService
放在哪里?我在想/grails app/services
,这是正确的地方吗?我希望其他人也能参与进来,我注意到在我的几个应用中,我在/src/groovy
中有我的customuserdetails服务
,但我想不出有什么好的理由,为什么它不在grails app/services
中。没问题,谢谢。我可能会把它放在src/groovy
中,因为它听起来很有用。@doelleri-在/src/groovy
中的类被当作“普通”的Springbean,虽然Grails服务对它们做了更多的工作,并且在如何通过Spring将它们连接到事物方面做了一些特殊的处理。@cdeszaq-由于自定义UserDetailsService bean必须在参考资料中声明。groovy
,这是否就等同于此?