一:什么是jdbc安全域?
我的理解是:验证信息(角色、用户名和密码)通过jdbc桥梁到数据库中去匹配,如果验证信息正确,则让用户访问到受保护的页面、信息等!
二:实现步骤如下:---注:本文是将tomcat管理员的角色信息存储到数据库中,进行验证!
1:数据库采用sqlserver2005
2:创建数据库名为: zltomcat
3:创建二张数据库表名称分别为:tomcat_user(用户表)、tomat_user_role(角色表)
4:tomcat_user表结构如下:
create table tomcat_user ( userName varchar(15) not null primary key, pass varchar(15) not null ); |
5:tomat_user_role表结构如下:
create table tomat_user_role (
userName varchar(15) not null,
roleName varchar(15) not null,
primary key (userName, roleName)
);
|
6:以上字段注释如下:
username:用户名
7:打开~tomcat/conf/ server.xml文件
8:在配置文件Engine节点下添加如下配置文件:
<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver" connectionURL="jdbc:sqlserver://127.0.0.1:1433;databaseName=zltomcat" connectionName="sa" connectionPassword="zl" userTable="tomcat_user" userNameCol="userName" userCredCol="pass" userRoleTable="tomat_user_role" roleNameCol="roleName" /> |
9:以上配置文件重要参数注释如下:
driverName:驱动名,不同的数据库不同
databaseName:数据库名
connectionName:数据库登陆名
connectionPassword:数据库登陆密码
userTable:用户表名
userNameCol:用户名字段
userCredCol:用户密码字段
userRoleTable:角色表表名
roleNameCol:角色字段(role)
10:将sqlserver2005的jdbc驱动包拷贝到tomcat的lib目录下。
11:测试,启动tomcat,在浏览器地址栏输入:http://localhost:8080/,点击:Tomcat Manager 输入数据库中设置的用户名和密码。登陆成功,进入到tomcat的管理员界面。
1:内存域(MemoryRealm),完全通过xml配置文件完成, 对应资源访问权限有三种方式:BASIC、DIGEST、FORM。
2: 数据源域(DataSourceRealm),通过JNDI数据源访问存在数据库中的安全验证信息。
3: JNDI域(JNDIRealm),通过JNDIproveider访 问存放在基于LDAP的目录服务器中的安全验证信息。
4:以上更多的信息请参考: http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html官方网站。