Tomcat で 2 つのレルムをセットアップしようとしていますが、何らかの理由でそれができません。管理作業 (Web アプリケーションのデプロイなど) には標準の UserDatabaseRealm (conf/tomcat-users.xml) を使用したいのですが、特定の Web アプリケーションの認証にはカスタム領域が必要です。
だから、私はこれを私のwebappのコンテキストに入れてみました:
<Context>
<GlobalNamingResources>
<Resource name="CustomDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="/usr/java/apache-tomcat-6.0.35/conf/tomcat-users.xml"
/>
</GlobalNamingResources>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="CustomDatabase"
/>
</Context>
これは実際には server.xml にあるもののコピーにすぎず、いくつかの変更が加えられています。
名前は、UserDatabase から CustomDatabase に変更されます。
パス名は絶対パス名です (メイン レルムにも同じものを使用します)。
私はいつもこの同じエラーを受け取ります:
LifecycleException: No UserDatabase component found under key CustomDatabase
そして、私はそれが私に何を言っているのかわからない。それはどのコンポーネントについて話しているのですか?
上記のコンテキストに加えて、他にもいくつか試しましたが、常に同じエラーが発生します。
Resource を GlobalNamingResources タグでラップしてみましたが、同じエラーがあるかどうかはわかりません。
Resource の auth 属性を Container と Application の両方に変更しようとしましたが、同じエラーが発生しました。
私は何が欠けていますか?Google からのすべてのヘルプは、ほとんどの人がメインのレルム (私の場合は問題ありません) を台無しにしており、2 番目のレルムを構成しようとはしていません。