• 締切済み

JDBCレルムによるFORM認証

お世話になります。 StrutsのJDBCレルムによるFORM認証について教えて下さい。 パスワードをSHAで暗号化したテーブルを使ってj_security_checkによる認証をさせたいのですが認証エラー(ID、Passwordが誤っています。 )となってしまいます。 DBはMySQLです。 SQLのログを見ると「SELECT password FROM users WHERE email = 'メールアドレス';」というログしか出ません。 このSQLをMySQLで実行すると暗号化されたパスワードが取得されます。 暗号化の方法が間違っているのか、JDBCレルムの指定が間違っているのかのいずれかとは思うのですが切り分け方法がわかりません。 TOMCATのログにもそれらしき情報が出ていないのですが、どのようにしたら認証エラーとなっている原因を調べることができるのでしょうか?

みんなの回答

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

とりあえず、どこまで確認できていますか? ・DIGESTなしなら認証できる。 ・認可の設定が確認できる。などなど 失敗するようなら、機能分割して確認できるところを分けましょう。 >TOMCATのログにもそれらしき情報が出ていないのですが、どのようにしたら認証エラーとなっている原因を調べることができるのでしょうか? 上記以外では、TOMCATをデバッグモードで起動し、TOMCATのソースと照らし合わせるくらいです。 セキュリティ上の問題があるので、安易にログに出てくることは期待しないほうが良いです。

miruha2011
質問者

お礼

ご回答ありがとうございます。 アドバイスに従い、まずは平文での認証を試したところ認証されませんでした。 原因はContextのpathの指定が間違っていた為でした。 修正して平文での認証は通るようになりましたので暗号化を試したところダメでした。 パスワードは MessageDigest md = MessageDigest.getInstance("SHA"); md.update("1234".getBytes()); md.digest(); として得られたものを入れていますので、 Realmでは digest="SHA" と指定しています。 暗号化の種類が間違っているのでしょうか?

関連するQ&A