只需使用数据库领域,并<Realm>在服务器配置文件的元素中配置表名和列名.对于Tomcat,这在Realm HOWTO中有所描述.以下是JDBCRealm章节中相关的摘录:
快速开始
要设置Tomcat以使用JDBCRealm,您需要执行以下步骤:
- 如果尚未执行此操作,请在数据库中创建符合上述要求的表和列.
- 配置供Tomcat使用的数据库用户名和密码,该用户名和密码至少具有对上述表的只读权限.(Tomcat永远不会尝试写入这些表.)
- 在
$CATALINA_HOME/lib目录中放置要使用的JDBC驱动程序的副本 .请注意,只能识别JAR文件!<Realm>在$CATALINA_BASE/conf/server.xml文件中设置元素,如下所述 .- 如果Tomcat 6已在运行,请重新启动它.
领域元素属性
要配置JDBCRealm,您将创建一个
<Realm>元素并将其嵌套在您的$CATALINA_BASE/conf/server.xml文件中,如上所述.JDBCRealm的属性在Realm配置文档中定义.例
用于创建所需表的示例SQL脚本可能如下所示(根据特定数据库的需要调整语法):
Run Code Online (Sandbox Code Playgroud)create table users ( user_name varchar(15) not null primary key, user_pass varchar(15) not null ); create table user_roles ( user_name varchar(15) not null, role_name varchar(15) not null, primary key(user_name, role_name) );示例
Realm元素包含(注释掉)在默认$CATALINA_BASE/conf/server.xml文件中.下面是使用名为"authority"的MySQL数据库的示例,该数据库使用上述表配置,并使用用户名"dbuser"和密码"dbpass"进行访问:Run Code Online (Sandbox Code Playgroud)<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="org.gjt.mm.mysql.Driver" connectionURL="jdbc:mysql://localhost/authority?user=dbuser&password=dbpass" userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" roleNameCol="role_name"/>
很清楚,不是吗?如果您已经在Tomcat中配置了JDBC数据源(用于连接池和打开),那么您也可以使用DataSourceRealm.
在tomcat-users.xml你所谈论的是通过调用方式是UserDatabaseRealm.