利用Tocmat安全域实现安全认证

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

安全域功能是Tomcat内置功能,在org.apache.catalina.Realm接口中声明了把一组用户名、口令及所关联的角色集成到Tocmat中的方法。

内存域:MemoryRealm 从XML文件中读取安全验证信息并存入内存中。

JDBC域:JDBCRealm 通过JDBC驱动程序访问存放在数据库中的信息。

数据源域:DataSourceRealm 通过JDBC数据源访问存放在数据库中的信息。

JNDI域:JNDIRealm 通过JNDI provider访问存放在基于LDAP的目录服务器中的安全验证信息。

设置资源安全约束

在web.xml中加入<security-constraint>元素

<security-constraint>

<display-name>MZT</display-name>

<web-resource-collection>

<web-resource-name>protected test</web-resource-name>

<url-pattern>/test/*</url-pattern>

<http-method>POST</http-method>

<http-method>GET</http-method>

</web-resource-collection>

<auth-constraint>

<role-name>mztadmin</role-name>

</auth-constraint>

</security-constraint>

<login-config>

<auth-method>BASIC</auth-method>

<realm-name>test realm</realm-name>

</login-config>

设置JDBC域

<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"

driverName="org.gjt.mm.mysql.Driver"

connectionURL="jdbc:mysql://localhost/mzt"

connectionName="root" connectionPassword=""

userTable="users" userNameCol="user_name" userCredCol="user_pass"

userRoleTable="user_roles" roleNameCol="role_name" />

<Realm className="org.apache.catalina.realm.DataSourceRealm" debug="99"

dataSourceName="jdbc/tomcatusers"

userTable="users" userNameCol="user_name" userCredCol="user_pass"

userRoleTable="user_roles" roleNameCol="role_name"/>

在MySQL中执行以下SQL语句:

#########

#用户表

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)

);

insert into users values('mzt','test');

insert into user_roles values('mzt','mztadmin');

如果有什么问题,可与我联系: webmaster@bcxy.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有