1

私は Tomcat 6 を使用しており、現在、MySql データベースでクリア テキスト パスワードとして機能するフォーム認証を使用しています。SHA-256 でパスワードをハッシュするためにパスワードに暗号化を追加しましたが、動作しているように見えますが、server.xml で digest="SHA-256" および digestEncoding="base64" を使用して Tomcat 6 経由で認証しようとすると、認証しません。データベースからパスワードをコピーしてパスワード フィールドに入力すると、ユーザーを認証できます。

Tomcat で通常のパスワードを使用してユーザーを認証できるようにするにはどうすればよいですか?

アプリケーションに追加したハッシュ コードは次のとおりです。

    MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
    byte bin[] = messageDigest.digest(password.getBytes("UTF-8"));
    return Base64.encodeBase64String(bin);
4

1 に答える 1

1

これに対する答えは、実際には非常に簡単です。カスタム Tomcat レルムを作成します。レルムは実際の認証を行う部分であり、データベースに対してテストする場合 (特に暗号化またはハッシュ化されている場合) は、レルム認証方法をオーバーライドする必要があります。

http://www.christianschenk.org/blog/setup-your-own-tomcat-security-realm/を参照してください。

于 2013-01-18T15:23:56.960 に答える