tomcat6配置RealmJDBC

来源:互联网 发布:九寨沟 几月 知乎 编辑:程序博客网 时间:2024/04/19 13:17
首先准备好数据库表或视图:
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)
);

找到tomcat6目录下的conf目录,编辑其中的context.xml文件,写入如下内容
<RealmclassName="org.apache.catalina.realm.JDBCRealm" 
     driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  connectionURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test"
   connectionName="sa"connectionPassword="111111"
 userTable="users"userNameCol="user_name" 
 userCredCol="user_pass" 
 userRoleTable="user_roles" 
 roleNameCol="role_name"/>

其中各项都不用太多介绍了,做开发的应该都能看得懂....

然后找到项目中的web.xml文件,添加内容
 <security-constraintid="test2">
<web-resource-collectionid="test1">
<web-resource-name>ProtectedArea</web-resource-name>
<url-pattern>*.do</url-pattern>
<url-pattern>*.jsp</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraintid="test3">
<role-name>admin</role-name>
<role-name>user</role-name> 
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>myrealm</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>   
</login-config>
<security-role>
<description>Administratorrole</description>
<role-name>admin</role-name>
<role-name>user</role-name> 
<role-name>user</role-name>
</security-role>
其中两个<role-name>中的内容为数据库中的user_roles表中的role_name字段,这个字段可以放入多个,表示对多个角色放入登陆,这样就算是配置完成了,其中我为了简便,就对jsp进行了监控,其实可以配置对action的监控,这要看自己的配置了。
这里有个已经配置好的测试项目,我放在网盘中了,有兴趣的可以下载看看:test.zip

至于项目的退出功能,直接调用session.invalidate();就可以了!

2013-01-10 --配置全用户通过(不去判断角色)
刚刚经理说让配置全部用户通过验证,不看角色,角色用另外一个系统来判断,于是配置了一下,第一想法就是
<role-name>*</role-name>两个地方都改成这样子就好了
结果就是可以了,

原创粉丝点击