簡體   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