一尘不染

Tomcat 7.11 JDBCRealm和UserDatabaseRealm不能一起使用

tomcat

我正在尝试为我的Web应用程序(JSF 2.1 +hibernate)设置一个容器管理的安全性领域。我注意到Tomcat 7一次只能使用一种类型的领域。

要在netbeans(7.0)中使用Tomcat,我必须创建一个经理脚本角色帐户。除了使用Tomcat
Manager,我还需要另一个角色。这对我来说是个大问题,因为我用于JDBCRealm的表是来自存储用户和角色的实际表中的视图,并且我不想将这两个角色都存储在程序使用的同一数据库中。

有没有办法使JDBCRealm和UserDBRealm一起工作?那将是一种解脱。

这是来自server.config的代码:

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

<Realm className="org.apache.catalina.realm.JDBCRealm"
    driverName="org.gjt.mm.mysql.Driver"
    connectionURL="jdbc:mysql://localhost:3306/realm?user=login&amp;password=pass" 
    userTable="users"
    userNameCol="user_name"
    userCredCol="user_pass"
    userRoleTable="user_roles" 
    roleNameCol="role_name" />

tomcat仅使用他在文件中找到的最后一个。他们分开工作得很好


阅读 221

收藏
2020-06-16

共1个答案

一尘不染

使用CombinedRealmdocjavadoc):

包含一个或多个领域的领域实现。尝试按照每个领域的配置顺序进行身份验证。如果有任何领域对用户进行身份验证,则身份验证成功。合并领域时,用户名在所有合并领域中应该是唯一的。

也许您已经在使用LockOutRealmdocjavadoc),它是CombinedRealmTomcat
的子类,并且在Tomcat的默认配置中。

2020-06-16