Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

データベースを使ったフォーム認証について

Tomcat(サーブレット)のフォーム認証で、ユーザ情報をデータベースで管理したいと思っていますが、うまくいきません。

・パスワードは、以下のコマンドでダイジェスト化しました。

> digest.bat -a SHA-512 -s 0 hogehoge

・context.xmlに、以下の設定を追加しました。

<Realm className="org.apache.catalina.realm.DataSourceRealm"
  driverName="com.mysql.cj.jdbc.Driver"
  userTable="usr"
  userNameCol="usr_id"
  userCredCol="usr_pass"
  userRoleTable="usr_role"
  roleNameCol="role"
  localDataSource="true">
  <CredentialHandler
    className="org.apache.catalina.realm.MessageDigestCredentialHandler"
    algorithm="SHA-512"
    saltLength="0" />
</Realm>

・tomcat-users.xmlではフォーム認証が動作することを確認済みです。

この状態で認証を試しても、認証に失敗してカスタムエラーページに遷移してしまいます。ダイジェスト化したパスワードと、入力したパスワード(hogehoge)が一致していないのだと思うのですが、設定が不足しているのでしょうか。お分かりの点があればお教え戴けますでしょうか。

2

回答

737

閲覧

2件の回答

評価

0

使ったことないから想像なんだけど、DataSource名はどこにあるの?

>driverName="com.mysql.cj.jdbc.Driver"
これもDataSource側の設定に入ってそうだけど。

評価

0

ご指摘ありがとうございます。
dataSourceName属性を正しく設定したところ、動作出来ました。
助かりました。

色々と触っているうちに、誤ってdriverName属性に置き換えてしまっていたようでした。

回答する

ログインしていません。

ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 アカウントをお持ちでない方は会員登録を行ってください。

ユーザ名匿名