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.usernameするためにフィールドの名前を に変更するとしたら、大変なことになるでしょうか?User.email

    このフィールドで Find Usages を実行したところ、1 つがDefaultSecurityConfig.groovyに突き出ていました。userLookup.usernamePropertyName = 'username'

    これを次のように更新できますか: DefaultSecurityConfig.groovy :userLookup.usernamePropertyName = 'email'

ありがとうございました。

4

1 に答える 1

4

ご指摘のとおり、独自のデフォルトのセキュリティ構成をオーバーライドできます。Config.groovyオプションはすべて で始まるgrails.plugins.springsecurityため、grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email'( docs ) になります。それが私が最初に試すことです。デフォルトの userDetailsS​​ervice であるGormUserDetailsS​​erviceのソースを確認すると、ルックアップにそのプロパティが使用されていることがわかります。

于 2012-09-16T05:17:30.410 に答える