- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我明白了 <security-role><role-name>Admin</role-name></security-role>
用于容器将其映射到 tomcat-users.xml( Realm )
但是如果我不使用 Realm 但我使用数据库我会感到困惑容器如何知道我的数据库中的哪个字段用于角色名称或者它在数据库字段名称中具有命名约定如“role_name”并且容器会知道它
谢谢大家的建议
最佳答案
只需使用数据库 Realm 并在 <Realm>
中配置表名和列名服务器配置文件中的元素。对于 Tomcat,这在 Realm HOWTO 中进行了描述.这是相关的摘录,来自 JDBCRealm chapter :
Quick Start
To set up Tomcat to use JDBCRealm, you will need to follow these steps:
- If you have not yet done so, create tables and columns in your database that conform to the requirements described above.
- 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.)
- Place a copy of the JDBC driver you will be using inside the
$CATALINA_HOME/lib
directory. Note that only JAR files are recognized!- Set up a
<Realm>
element, as described below, in your$CATALINA_BASE/conf/server.xml
file.- 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"/>
很清楚,不是吗?如果您已经在 Tomcat 中配置了 JDBC 数据源(用于连接池等),那么您也可以使用 DataSourceRealm相反。
tomcat-users.xml
你说的是UserDatabaseRealm .
关于java - 对 web.xml 中的 <security-role> 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5294252/
我正在评估在 Azure 中部署 Web 服务的各种选项。目前,Web 服务将仅由前端 UI 使用,该前端 UI 将作为单独的 Web 角色部署在托管 Web 服务的同一云服务中。然而,Web 服务将
我正在尝试在 Azure 中创建一个自定义角色,允许订阅“所有者”执行几乎所有操作,但取消/重命名自己的订阅或移至另一个管理组。 我还希望他们能够向他们想要的人授予正确的访问权限(特别是内置的“贡献者
我是 Ansible 的新手,我已经创建了我的第一个 Ansible 角色剧本,当我尝试运行它时,它抛出了下面的错误,而角色之外的其他模块(如处理程序、模板)工作正常。我仅通过剧本中的角色观察到这个问
我正在使用 Selenium 进行自动化测试。有什么区别 java -jar selenium-server-standalone-2.24.1.jar -role hub 和 java -jar s
根据WAI-ARIA specification两个角色都应该有: 关注第一个可聚焦元素 用户不能离开对话框 应该设置适当的 aria-label 应该用来中断流程,并且应该要求采取一些行动,例如单击
我想设计一个具有以下要求的数据库,但我遇到了问题。 我有 3 种类型的用户:医生、注册用户和管理员。将来我可能会添加其他类型的用户。这些用户类型中的每一种都有不同的配置文件字段。例如,注册用户应该有
我是 jQuery 和网页设计的新手,请原谅我问这个幼稚的问题。 关于latest jQuery mobile website ,他们的例子是: Page content goes here
我正在查看文档: http://pyqt.sourceforge.net/Docs/PyQt4/qtablewidgetitem.html#data 我可以将行 IDList.append(item.
我看到角色出现一些奇怪的异常,我不知道如何解释。角色名RD........ under ,我能期望它是什么?它是我在该特定服务组中的所有服务都在其上运行的底层机器吗? 最佳答案 Application
我正在尝试使用我的 GitHub 设置 CodeDeploy,但发现了一些问题。 我已使用 AWSCodeDeployRole 策略创建了服务角色,如文档中所述。 在我的 Code Deploy 应用
我正在尝试创建一个 Web 服务并将其部署到 Azure 云服务 场景非常简单:通过 http 或 https 向服务发送请求并接收一些数据。 我无法从文档中判断这是否应该在 WebRole 或 Wo
我从 ASP.NET Identity 的声明授权开始,如果我的应用程序中需要“角色”概念,我想阐明处理它们的方式。 注意:我对这个真的很陌生,所以所有的概念都在我脑海中飞舞,请多多关照,对于任何概念
我知道这个问题与一些类似,但我的设置与那些不同。 EF 中具有以下类的正确配置是什么? 这里的问题是 Team有一个可选的 DivisionParticipant ,但是 DivisionPartic
我无法运行 Windows Azure Hello World 示例。它给了我以下错误: “一个或多个角色启动角色失败”。 我将项目放在 D 驱动器的根目录中,以确保路径长度不是问题。我还清除了 Az
我正在尝试向我的 Xcode 添加一个帐户,但我一直收到此错误。另一个 Xcode 上的相同帐户可以完美运行。我有其他帐户运行良好。 错误是(如标题所述) The role information i
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
在 Bash 脚本中,我想删除 Postgres 用户角色。但是 Postgres 不允许我这样做,我得到了 Cannot drop table X because other objects dep
我目前正在设置一个新项目并创建我的登录系统。由于某种原因,它似乎正在搜索角色表?到目前为止,这是我的结构: Controller public function action_index() {
我有三个模型,一个用户,一个个人资料和一个角色,我试图通过个人资料角色附加到用户强>. # user.rb class User :profiles has_many :users end 我正
我想使用 Spring Security JSP 标签库根据角色有条件地显示一些内容。但是在 Spring Security 3.1.x 中只检查一个角色。 我可以使用,但 ifAllGranted
我是一名优秀的程序员,十分优秀!