0

Spring Security プラグインを使用する Grails アプリケーションをセットアップしました。プラグインのセットアップにはデフォルトを使用しました。

ユーザーがボタンをクリックしてログイン画面で続行するときに、Spring Security が実際にユーザーのパスワードをチェックする定型コードの場所を理解することはできません。

プラグインに付属する完全なコードはここにありますが、(私が思うに)関連するコードは以下のとおりです。

/**
* Show the login page.
*/
def auth = {
    def config = SpringSecurityUtils.securityConfig

    if (springSecurityService.isLoggedIn()) {
        redirect uri: config.successHandler.defaultTargetUrl
        return
    }

    String view = 'auth'
    String postUrl = "${request.contextPath}${config.apf.filterProcessesUrl}"
    render view: view, model: [postUrl: postUrl,
    rememberMeParameter: config.rememberMe.parameter]
}

Grails と Spring Security のドキュメントを何時間もググって読んでみましたが、コードをクラックすることはできません。どんな助けでも感謝します。

4

1 に答える 1

0

そうではありません。Spring Security によって処理されます。ログイン コントローラーは認証を行わず、ログイン ページを表示するだけで、リダイレクトを処理します。認証は、/j_spring_security_checkURI をインターセプトするフィルターによって処理されます (/login/auth のソースを表示すると、これが次の URI であることがわかります)。フォームへの投稿)。

フィルタ ( ) はBean にorg.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter委譲します。Bean はデフォルトでは ですが、カスタム実装にすることもできます。passwordEncoderorg.springframework.security.authentication.encoding.MessageDigestPasswordEncodergrails.plugins.springsecurity.BCryptPasswordEncoder

于 2013-05-01T01:43:25.423 に答える