Tomcat 7 中的 JDBC Realm 配置
来源:互联网 发布:电脑设计软件培训 编辑:程序博客网 时间:2024/05/17 15:40
Tomcat 7 作为一个 Container,支持灵活的认证配置方式。
这块提供用户信息的数据源称为 Realm。
如果我们自行管理,可以使用 JDBCRealm, 即把用户信息放在外部数据库中的方式。
首先你需要在 Tomcat 的 conf/server.xml 中配置 Realm。
把原来的 Realm 注释掉
Tomcat 缺省使用 UserDatabase Realm,即基于本地 tomcat-users.xml 的信息。
原来的 Realm 有可能是在 LockOutRealm 里面的,没有关系,把那一段注释掉即可。
设备用户数据表
Tomcat 对 JDBCRealm 数据表是有要求的。
强烈建议以用户名为主键,并以 MD5 等 Hash 方式保存密码 必须 角色表 至少应用一列是角色名。
强烈建议以角色名为主键 可选 用户-角色表 这实际上是一个关联表。
建议以用户-角色为主键,通过外键约束到用户表和角色表。
必有一列是用户名,另一列是角色名,用户名的列名要与用户表中的列名一致 必须
注意:不建议用自动生成的数字 ID 作为用户表或角色表的主键!
配置新的 Realm
按以下内容配置新的 Realm
<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/tomcat_realm" connectionName="database_user" connectionPassword="database_user_pass" digest="MD5" userTable="usr" userNameCol="usr_name" userCredCol="passwd_md5" userRoleTable="usr_grp" roleNameCol="grp_name"/>
这里的数据表配置很有讲究。
- tomcat_realm 是保存用户数据库的名字
- digest=”MD5” 表明我们不保存用户的密码,我们只保存 MD5 的 Hash,这样安全性相对好些
- userTable 是保存用户信息的表,它必须有两列,一列指定 username 另一列指定 password
- userNameCol/CredCol 是表中用户名和密码的列
- userRoleTable 是一个 JoinTable,但它不建议使用数字 id 作为键来关联。它建议直接用 username 和 rolename 作为主键,来进行关联。
强调一下:
userRoleTable 中的“用户名”列,其列名必须与 userTable 中的“用户名”列的列名一致!
比如,都叫 “usr_name”
userRoleTable 中的“用户名”列,其列名必须与 userTable 中的“用户名”列的列名一致!
比如,都叫 “usr_name”
userRoleTable 中的“用户名”列,其列名必须与 userTable 中的“用户名”列的列名一致!
比如,都叫 “usr_name”
重要的事情说三遍。
详细的说明见:
https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html
0 0
- Tomcat 7 中的 JDBC Realm 配置
- Tomcat <Realm>配置
- Tomcat中的Realm
- 数据库连接配置1 -- Tomcat 中的 JDBC Pool
- tomcat 安全认证 Realm 及 多种类型 Realm 配置
- tomcat realm
- Tomcat 7 配置MySQL/Oracle JDBC
- Tomcat 中的 JDBC Pool及配置参数的介绍
- TomCat中JDBC配置
- tomcat中配置jdbc
- tomcat jdbc pool 配置
- Shiro (二) JDBC Realm
- shiro-jdbc-Realm
- Jdk + jdbc + tomcat 综合配置
- Tomcat配置JDBC数据库连接池
- Spring - Tomcat jdbc pool 配置
- Tomcat -- Realm组件
- Tomcat学习 - Realm Introduction
- android极光推送初步了解
- 在linux系统中如何使用命令行获取本机的公网IP
- B - Duff in Love(数论)
- URI和URL的区别
- Sql Server远程连接数据库(相当于Oracle的dblink方式)
- Tomcat 7 中的 JDBC Realm 配置
- [svn] linux命令——svn分支创建、合并
- hdoj 2509 Be the Winner 【博弈】
- C语言面向对象之继承、多态、可变参数、函数指针
- Liunx sed
- CSS背景靠右对齐,并且背景图片右边刘10px
- Xcode7 collectionView的编辑新特性
- 【MySQL】【leetcode】 Rising Temperature解题报告
- Memcached源码分析(线程模型)