安全域是Tomcat的内置功能,主要有以下几种安全域:
JDBCRealm
DataSourceRealm
JNDIRealm
MemoryRealm
JAASRealm
在conf/server.xml中配置应用的<Context......>下面的<Realm className="org.apache.catalina.realm.MemoryRealm" />
从一个XML文件中读取用户信息,默认的就是tomcat-users.xml
tomcat-users.xml中的角色定义
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="guest"/>
<user username="lee" password="lee" roles="guest"/>
<user username="suoxin" password="suoxin" roles="tomcat,role1"/>
</tomcat-users>
在应用下的web.xml中加入<security-constraint>元素
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>guest</role-name>
</auth-constraint>
</security-constraint>
在应用下的web.xml中加入<login-config>元素
<login-config>
<auth-method>FORM</auth-method>
<!--这里FORM是基于表单的验证,会跳转到mylogin.jsp,如果出错就到myerror.jsp,
还有基于对话筐的是BASIC关键字,但是不安全在网络传输中。摘要验证DIGEST会采
用MD5(Message Digest Algorithm)加密传输-->
<form-login-config>
<form-login-page>/mylogin.jsp</form-login-page>
<form-error-page>/myerror.jsp</form-error-page>
</form-login-config>
</login-config>
mylogin.jsp的action和name必须严格规范写
<form name="form1" id="form1" method="post" action="j_security_check">
<input type="text" name="j_username"/>
<input type="text" name="j_password"/>
<input type="submit" name="Submit" value="提交" />
</form>
posted on 2006-02-11 09:11
java小记 阅读(217)
评论(0) 编辑 收藏