Glassfishセキュリティ-jdbcRealm:SHA-256ダイジェストを使用してログインを構成する方法

StackOverflow https://stackoverflow.com/questions/3444503

質問

Glassfish v3.0.1b22のセキュリティのためにjdbcRealmを使用しています。次のブログに従って、認証にデータベース内のUSERテーブルを使用するように設定されています: http ://blogs.oracle.com/foo/entry/mort_learns_jdbc_realm_authentication 。ダイジェストアルゴリズムをプレーンテキストのままにしておけば、問題なく動作するようになりました。ただし、ダイジェストアルゴリズムにSHA-256を使用しようとすると、機能しなくなります。 私がしたことは、Glassfish-セキュリティ-レルム-jdbcRealm-ダイジェストでSHA-256が必要であることを指定することです(ダイジェストフィールド内にSHA-256と入力するだけです)。次に、パスワードテキストをSHA-256ハッシュに変換する簡単なJavaプログラムを作成しました。次に、そのハッシュをデータベースのパスワードフィールドに貼り付けます。ちなみに、パスワードフィールドはvarchar(30)型です。もうログインできません。私の単純なJavaプログラムが、同じテキストフィールドに対して毎回異なるハッシュを生成していることに気づきました。

以下は私の単純なJavaプログラムです: ジェネラコディセタグプレ

役に立ちましたか?

解決

jdbcRealmでは、hexまたはbase64の値をエンコードできます。レルム構成とコードでこれらのいずれかを指定する必要があり、バイト配列を次のいずれかの形式に変換します。

Base64: ジェネラコディセタグプレ

16進数: ジェネラコディセタグプレ

ところで、パスワードフィールドはvarchar(30)型です

パスワードフィールドのサイズを大きくする必要があります。SHA-256のbase64とhexの値の長さはそれぞれ45文字と64文字です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top