2016-05-03 28 views
0

我試圖用「電子郵件」和密碼替換「motDePasse」的用戶名,但我無法弄清楚如何去做:我試圖替換每個舊名稱在Person類中都有新名稱,並且我將以下配置添加到
my application.groovy : grails.plugin.springsecurity.userLookup.usernamePropertyName= 'email' grails.plugin.springsecurity.userLookup.passwordPropertyName= 'motDePasse'
但它不起作用。我正在使用grails 3.1.5,任何人都可以幫助我嗎?
自定義UserDetailsS​​ervice」部分文檔不顯示如何替換屬性。
謝謝定製人員類(替換用戶名和密碼屬性)

+0

當您運行此操作時,您是否收到錯誤或者您是否沒有獲得預期結果? –

+0

是的,我完成了只更換電子郵件和保持密碼,它現在工作,我會分享我所做的 – hereForLearing

回答

0

我結束了保持默認的密碼,並用電子郵件代替用戶名,我只是簡單地更換每一個「用戶名」,在Person類的「電子郵件」:

package ma.ac.uir.ecine.authentification 

import groovy.transform.EqualsAndHashCode 
import groovy.transform.ToString 


@EqualsAndHashCode(includes='email') 
@ToString(includes='email', includeNames=true, includePackage=false) 
class Personne implements Serializable { 

    private static final long serialVersionUID = 1 

    transient springSecurityService 

    String email 
    String password 
    boolean enabled = true 
    boolean accountExpired 
    boolean accountLocked 
    boolean passwordExpired 

    Personne(String email, String password) { 
     this() 
     this.email = email 
     this.password = password 
    } 

    Set<Role> getAuthorities() { 
     PersonneRole.findAllByPersonne(this)*.role 
    } 

    def beforeInsert() { 
     encodePassword() 
    } 

    def beforeUpdate() { 
     if (isDirty('password')) { 
      encodePassword() 
     } 
    } 

    protected void encodePassword() { 
     password = springSecurityService?.passwordEncoder ? springSecurityService.encodePassword(password) : password 
    } 

    static transients = ['springSecurityService'] 

    static constraints = { 
     password blank: false, password: true 
     email blank: false, unique: true 
    } 

    static mapping = { 
     password column: '`password`' 
    } 
} 

,並添加

grails.plugin.springsecurity.userLookup.usernamePropertyName= 'email' 

到application.groovy
我不能取代密碼。

相關問題