混淆< security-role>在web.xml中

我明白了
<security-role><role-name>Admin</role-name></security-role>
用于容器映射它与tomcat-users.xml(领域) 但我很困惑,如果我没有使用领域,但我使用数据库如何容器知道我的数据库中的哪个字段是用于角色名称,或者它在数据库字段名称中具有命名约定,如“role_name”,容器将知道它 谢谢你的每一个建议     
已邀请:
只需使用数据库领域,并在服务器配置文件的
<Realm>
元素中配置表名和列名。对于Tomcat,这在Realm HOWTO中有所描述。以下是JDBCRealm章节中相关的摘录:   快速开始      要设置Tomcat以使用JDBCRealm,您需要执行以下步骤:         如果您还没有这样做,请在您的中创建表格和列   符合的数据库   上述要求。   配置Tomcat使用的数据库用户名和密码   至少有只读访问权限   表格如上所述。 (Tomcat会   永远不要试图写这些   表。)   放置您将在其中使用的JDBC驱动程序的副本   
$CATALINA_HOME/lib
目录。注意   只识别JAR文件!   设置一个
<Realm>
元素,如下所述,在你的   
$CATALINA_BASE/conf/server.xml
档。   如果Tomcat 6已在运行,请重新启动它。         领域元素属性      要配置JDBCRealm,您将   创建一个
<Realm>
元素并嵌套它   在你的
$CATALINA_BASE/conf/server.xml
  文件,如上所述。该   JDBCRealm的属性是   在Realm配置中定义   文档。      例      用于创建的SQL脚本示例   需要的表可能看起来像   像这样(使语法适应   你的特殊需要   数据库):
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
档。   这是使用MySQL的一个例子   数据库称为“权威”,   配置了所描述的表   上面,并使用用户名访问   “dbuser”和密码“dbpass”:
<Realm className="org.apache.catalina.realm.JDBCRealm"
      driverName="org.gjt.mm.mysql.Driver"  
   connectionURL="jdbc:mysql://localhost/authority?user=dbuser&amp;password=dbpass"
       userTable="users" userNameCol="user_name" userCredCol="user_pass"   
   userRoleTable="user_roles" roleNameCol="role_name"/>
很清楚,不是吗?如果您已经在Tomcat中配置了JDBC数据源(用于连接池和打开),那么您也可以使用DataSourceRealm。 你所谈论的
tomcat-users.xml
就像UserDatabaseRealm一样。     

要回复问题请先登录注册