Вы можете использовать объединенную область для объединения двух областей JDBC:
В $ CATALINA_BASE / conf / server.xml
<Realm className="org.apache.catalina.realm.CombinedRealm" >
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/db?user=dbuser&password=dbpass"
userTable="client"
userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/>
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/db?user=dbuser&password=dbpass"
userTable="administrator"
userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/>
</Realm>
Однако в этом случае может быть лучшеустановите источник данных и используйте DataSourceRealm для доступа к таблицам.
<Realm className="org.apache.catalina.realm.CombinedRealm" >
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/authority"
userTable="clients" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/>
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/authority"
userTable="administrators" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/>
</Realm>
Таким образом, вам нужно всего лишь установить строку подключения в источнике данных, а не дублировать ее в области.
NB. Лично я хотел бы задать вопрос, является ли хорошей идеей иметь другую таблицу ADMINISTRATOR и USER, как, например, что произойдет, если у вас есть имя пользователя, которое является одновременно клиентом и администратором, поэтому вам нужно убедиться, что этоне происходит, что намного проще, если иметь ограничение только для одной таблицы.