关于令人困惑在 web.xml 中

发布于 2024-10-21 12:03:49 字数 222 浏览 0 评论 0原文

我明白 <安全角色><角色名称>管理员 用于容器将其与 tomcat-users.xml (领域)映射

,但我很困惑,如果我没有使用领域,但我使用数据库,容器如何知道我的数据库中的哪个字段用于角色名称,或者它在数据库字段中有命名约定像“role_name”这样的名称和容器会知道它

谢谢您的每一个建议

I'm understand that
<security-role><role-name>Admin</role-name></security-role>
is for container map it with tomcat-users.xml (realm)

but I confuse about if I didn't use realm but I use database how container know which field in my database is for role-name or it have naming convention in database field name like "role_name" and container will know it

Thank you for every advices

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

口干舌燥 2024-10-28 12:03:49

只需使用数据库领域并在服务器配置文件的 元素中配置表名和列名即可。对于 Tomcat,Realm HOWTO 中对此进行了描述。以下是 JDBCRealm 章节 中的相关摘录:

快速入门

要设置 Tomcat 使用 JDBCRealm,您需要执行以下步骤:

  1. 如果您尚未这样做,请在您的
    数据库符合
    上述要求。
  2. 配置 Tomcat 使用的数据库用户名和密码,即
    至少具有只读访问权限
    上述表格。 (雄猫将
    永远不要尝试写这些
    表。)
  3. 将您将使用的 JDBC 驱动程序的副本放入
    $CATALINA_HOME/lib 目录。笔记
    仅识别 JAR 文件!
  4. 按照如下所述在您的
    $CATALINA_BASE/conf/server.xml 文件。
  5. 如果 Tomcat 6 已在运行,请将其重新启动。

领域元素属性

要配置 JDBCRealm,您将
创建一个 元素并嵌套它
在您的 $CATALINA_BASE/conf/server.xml
文件,如上所述。这
JDBCRealm 的属性是
在 Realm 配置中定义
文档。

示例

用于创建的示例 SQL 脚本
所需的表格可能看起来有些东西
像这样(将语法调整为
您的特定需要
数据库):

创建表用户(
  user_name varchar(15) 主键不为空,  
  user_pass varchar(15) 不为空
);

创建表 user_roles (
  用户名 varchar(15) 不为空,
  role_name varchar(15) 不为空,
  主键(用户名,角色名)
);

包含

示例 Realm 元素
(注释掉)在默认情况下
$CATALINA_BASE/conf/server.xml 文件。
这是使用 MySQL 的示例
称为“权威”的数据库,
使用所描述的表进行配置
上面,并使用用户名访问
“dbuser”和密码“dbpass”:


很清楚,不是吗?如果您已经在 Tomcat 中配置了 JDBC 数据源(用于连接池等),那么您还可以使用 DataSourceRealm 代替。

您正在谈论的 tomcat-users.xml 顺便称为 UserDatabaseRealm

Just use a database realm and configure the table and column names in a <Realm> element in server configuration file. For Tomcat, this is described in the Realm HOWTO. Here's an extract of relevance, from the JDBCRealm chapter:

Quick Start

To set up Tomcat to use JDBCRealm, you will need to follow these steps:

  1. If you have not yet done so, create tables and columns in your
    database that conform to the
    requirements described above.
  2. Configure a database username and password for use by Tomcat, that
    has at least read only access to the
    tables described above. (Tomcat will
    never attempt to write to these
    tables.)
  3. Place a copy of the JDBC driver you will be using inside the
    $CATALINA_HOME/lib directory. Note
    that only JAR files are recognized!
  4. Set up a <Realm> element, as described below, in your
    $CATALINA_BASE/conf/server.xml file.
  5. Restart Tomcat 6 if it is already running.

Realm Element Attributes

To configure JDBCRealm, you will
create a <Realm> element and nest it
in your $CATALINA_BASE/conf/server.xml
file, as described above. The
attributes for the JDBCRealm are
defined in the Realm configuration
documentation.

Example

An example SQL script to create the
needed tables might look something
like this (adapt the syntax as
required for your particular
database):

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)
);

Example Realm elements are included
(commented out) in the default
$CATALINA_BASE/conf/server.xml file.
Here's an example for using a MySQL
database called "authority",
configured with the tables described
above, and accessed with username
"dbuser" and password "dbpass":

<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"/>

Pretty clear, isn't it? If you already have a JDBC datasource configured in Tomcat (for connection pooling and on), then you can also use DataSourceRealm instead.

The tomcat-users.xml which you're talking about is by the way called UserDatabaseRealm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文