5

フォーム認証を使用し、ダイジェストされたパスワード (SHA-256 など) を使用するバニラ コンテナー管理セキュリティをセットアップする方法を知っています。このようなもの:

web.xml

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>jdbc</realm-name>
    <form-login-config>
        <form-login-page>/login.jsf</form-login-page>
        <form-error-page>/login-error.jsf</form-error-page>
    </form-login-config>
</login-config>

login.xhtml

<form action="j_security_check">
    <p><label>
        Username:<br/>
        <input type="text" name="j_username" />
    </label></p>
    <p><label>
        Password:<br/>
        <input type="password" name="j_password" />
    </label></p>
    <p>
        <button type="submit">Submit</button>
    </p>
</form>

かなり単純ですが、私が本当にやりたいのは、パスワードをグローバルソルトとユーザー名でソルトすることです。はい、これが理想的ではないことは承知していますが、現在、概念実証を構築しているところです。

コンテナー (この場合は GlassFish 3) でこれを実行できますか? それとも、独自のログイン フィルターを作成する必要がありますか? 以前に (J2EE アプリケーション用に) 実行したことがありますが、Java EE 6 を使用するようになった今では、より厳密な方法で実行する必要があることがわかりました。

4

1 に答える 1

3

ビルトイン認証プロバイダーを変更するための迅速な (そして潜在的に汚い?) 方法を探しているように感じます。

適切な方法は、新しい JASPIC API ( JSR-196 ) 用に独自の Java 認証サービス プロバイダーを実装することです。手間はかかりますが、この方法では実装を好きなように展開でき、任意の Java EE 6 アプリケーション サーバーと互換性があるはずです。

パスワード ソルティングを使用した基本的な認証スキームの場合、そのようなプロバイダーの実装は非常に簡単です。ユーザーとパスワードの管理について考える必要がありますが、解決策の 1 つは、プロバイダが Glassfish 認証領域で定義されたユーザーを再利用できるようにすることです。これにより、ソルト化されたカスタム パスワードを自分で管理するだけで済みます。

WebSphere 用の優れたチュートリアルがあり、Glassfish に適応できるはずですここ.

于 2010-12-16T23:14:31.663 に答える