rjc*_*arr 2 java tomcat jdbcrealm
我正在尝试在tomcat中设置两个领域,并且由于某种原因它不会让我.我想使用标准的UserDatabaseRealm(conf/tomcat-users.xml)来执行管理工作(比如部署webapps),但我想要一个自定义域来为特定的webapp进行身份验证.
所以,我尝试将其放在我的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>
Run Code Online (Sandbox Code Playgroud)
这只是server.xml中的一个副本,其中包含一些更改:
该名称从UserDatabase更改为CustomDatabase.
路径名是绝对路径名(和我用于主域的路径名相同).
我总是得到同样的错误:
LifecycleException: No UserDatabase component found under key CustomDatabase
Run Code Online (Sandbox Code Playgroud)
我不知道它告诉我什么.它在谈论什么组成部分?
除了上面的上下文,我还尝试了其他一些东西,但它总是会出现同样的错误:
我尝试使用GlobalNamingResources标记包装资源以及是否存在相同的错误.
我已经尝试将Resource的auth属性更改为Container和Application并获得相同的错误.
我错过了什么?谷歌的所有帮助主要是人们弄乱他们的主要领域(我的很好)不试图配置第二个领域.
你可以用org.apache.catalina.realm.CombinedRealm.从Tomcat 文档:
<Realm className="org.apache.catalina.realm.CombinedRealm" >
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/authority"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/>
</Realm>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3930 次 |
| 最近记录: |