- - PR -
tomcat5でのDB認証について
1
| 投稿者 | 投稿内容 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-03 02:28
いつもお世話になっています。
tomcat5について質問があります。 tomcatとDBを連携させた認証なのですが、 まず @webアプリのweb.xmlで
でしていし、 Aserver.xmlで [code] <!-- enable below--> <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/api" connectionName="api" connectionPassword="api" userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" roleNameCol="role_name" /> <!-- end avobe --> とする。 Blocalhostのdbに
を作成。 これでよいと思いますが、 tomcat5を起動すると以下の警告が出ます。
そのせいで認証ができないと思いますが、tomcat4では、 同じ方法で認証ができました。 なぜでしょうか? @のweb.xmlの最後に
としましたがだめでした。(tomcatでは意味ないとのことでしたが。。。) 教えていただけますでしょうか? よろしくお願いします。 長々した説明で恐縮です。。。 | ||||||||||||||||
|
投稿日時: 2004-06-02 13:21
たまたま同じ問題にぶち当たり、Googleで検索していてこのスレッドを発見しました。
ちょっと時間が空きましたが参考まで。
ほんとうは <role-name> のところ、<role_name> とタイプミスしているからではないでしょうか。 当方ではこれでWarningは解決しています。 ついでに関連する質問をさせてもらいます。 Tomcatでロール定義をする場合、どのタイプのレルムを使っても情報を二重に定義しなければならないものなのでしょうか? ・DBとweb.xml ・tomcat-users.xmlとweb.xml メンテが手間なので1箇所で管理したいのですが、どなたかよい方法をご存知でないでしょうか? | ||||||||||||||||
|
投稿日時: 2004-06-02 14:34
1 箇所で管理できる事に意味があるのか解かりませんが、 ロールの配り方で、同じ様な効果にする事が出来るのではないでしょうか。 例えば、あるウェブアプリに一意の文字列 aaa を割り当てる。 aaa が必要とするロールが 3 つある場合、先の文字列と足して、 aaa1, aaa2, aaa3 というロールを作り、それをコード中と web.xml に 記述する。 あとは、誰にどのロールを配るかを気にするだけなので、 DB の情報のみ管理すれば良いとなります。 他にも、やりかたはありますけど。 [ メッセージ編集済み 編集者: はしもと 編集日時 2004-06-02 14:35 ] [ メッセージ編集済み 編集者: はしもと 編集日時 2004-06-02 14:46 ] | ||||||||||||||||
|
投稿日時: 2004-06-02 15:16
はしもとさん、毎度どうもありがとうございます。
おかげ様で問題がクリアになりました。 ロールとロール割り当ての間の参照整合性を保つためには、「ロールマスタ」をDBに作らなければ、と考えていたので、それがDBとweb.xmlとで同じ情報の二重持ちになるという点を問題視していました。 (常にDBとweb.xmlを同期させなければならない点) DBに参照整合性制約さえ定義しなければ、「ロールマスタ」をDBに作る必要なし、ということで、確かにはしもとさんのおっしゃる通りですね。 んー、アプリで整合性確保するか・・・ | ||||||||||||||||
1
