- - PR -
Tomcat5のデータソースレルム
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-07-12 17:53
Tomcat5のデータソースレルムに関する質問です。
環境 Red Hat Linux9 Tomcat5.0 作成中のオリジナルWebアプリケーションのユーザ認証では、データソースレルムを用いてBasic認証を行います。 現在のデータベースはPostgreSQL7.4で、ユーザIDとパスワードは以下のようなテーブルに格納しています。
ユーザを一時的に無効化できるように enabled(有効か?) という列を設けて、この値がTRUEのユーザのみが認証されるようにします。そのために、Tomcat5のデータソースレルムからはこのテーブルを直接参照するのではなく、以下のようなビューを参照させています。
さて、このたびデータベースをMySQL4.0に変更しようと考えています。ただし問題があり、MySQL4.0ではビューが使用できません。 さあ、困った。 org.apache.catalina.realm.DataSourceRealm のソースを見ましたが、server.xmlの設定によって動的に"WHERE enabled = true"のような抽出条件を付加するのは無理そう。 今のところ有効なユーザのみを格納する別テーブルを作り、二重メンテナンスでもしようかと考えていますが、何か他に良いアイディアがあればぜひ聞かせてもらえませんでしょうか。 なお、DataSourceRealmのサブクラスを作ったり、コピー&改造して都合の良いように書き換える案もありますが、将来Tomcatがバージョンアップする度に気にしないといけなくなるのがネックです。 | ||||||||
|
投稿日時: 2004-07-12 18:39
org.apache.catalina.realm.DataSourceRealmのソースを眺めていたら、server.xmlで、
とかやればうまくいくことに気づきました。 ただしロールテーブル(上で言うroles)にも、ダミーのenabled列を作らないといけないはず。 想定外の方法であることは100%確実、SQLインジェクションの一種のような気もするけど、セキュリティホールってわけでもないし。 まぁ、いっか!? ・・・いいのか? | ||||||||
1
