tomcat realm mysql resource_Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源用户访问控制...

软件版本:

Tomcat 7.0.40

Mysql: 5.1

Host: CentOS 6.3 64bit

使用JDBCRealm (Tomcat 会使用所给的JDBC Connecter 自己去连MySQL 数据库并进行用户验证):

1) 下载MySQL-JDBC connector 如mysql-connector-java-5.1.24-bin.jar放到$CATALINA_HOME/lib目录下;

2) 连上MySQL 创建数据库(比如数据库名字叫DBName),在此库里面创建2个表(users表和roles表),表结构如下:

CREATE TABLE `roles` (

`Id` int(11) NOT NULL AUTO_INCREMENT,

`Role` varchar(50) DEFAULT NULL,

`Username` varchar(50) DEFAULT NULL,

PRIMARY KEY (`Id`)

) ;

CREATE TABLE `users` (

`Id` int(11) NOT NULL AUTO_INCREMENT,

`Username` varchar(50) NOT NULL DEFAULT '',

`Password` varchar(50) DEFAULT '',

`Email` varchar(255) DEFAULT NULL,

PRIMARY KEY (`Id`)

) ;

INSERT INTO `users` VALUES (1,'root','password',NULL);

INSERT INTO `roles` VALUES (1,'rootgrp','root');

表示root用户在rootgrp组里。

3)配置Tomcat $CATALINA_HOME/conf/server.xml

比如在Engine Section下增加:

driverName="com.mysql.jdbc.Driver"

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"    

connectionURL="jdbc:mysql://localhost:3306/DBName?user=root&password=password"

userTable="users"

userNameCol="username"

userCredCol="password"

userRoleTable="roles"

roleNameCol="role"/>

注意: Tomcat7默认的server.xml里面在Engine里面也有一段Realm配置代码,如下面所示, 此处需要注释掉它,否则会出问题。

4)在你应用包的WEB-INF/web.xml里增加如下,做资源访问限制,否则上面配置不起作用,如果想让访问整个site都起作用,在webapps/ROOT/WEB-INF/web.xml里增加以下内容。

..................

web pages

/*  

rootgrp

BASIC

Tomcat Application

The role that is required to access the pages of this website

rootgrp

.............

重启即可。

如果想用DataSourceRealm去做访问控制认证,重复以上步骤,但唯一需要改动的是将第3)步替换为下面的3A)步骤,

3A)在$CATALINA_HOME/conf/server.xml文件中,在一节下增加一个DataSource资源如下:

type="javax.sql.DataSource"

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 

maxActive="100" maxIdle="30" maxWait="10000"

username="root" password="password"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/DBName" />

然后再在此server.xml里面的如Section下面增加以下内容

dataSourceName="jdbc/DBName"

userTable="users"

userNameCol="Username"

userCredCol="Password"

userRoleTable="roles"

roleNameCol="Role"/>

同样的,需要把Server.xml里面默认的那个Realm给注释掉。

重启Tomcat即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值