J2EE安全应用___web.xml的安全配置

[color=red]------------------tomcat .5.5 测试可用----------------[/color]阅读声明: 本次案例,使用tomcat的[color=red]tomcat-users.xml[/color]文件
tomcat-users.xml提供了安全领域,这个文件会在tomcat启动时加载进内存,它足够用来
测试安全的配置效果。文件有如下内容:(如果没有,请复制到tomcat的conf文件夹)
<tomcat-users>
<role rolename="Admin" />
<role rolename="Guest" />
<role rolename="Member" />
<user username="Annie" password="admin" roles="Admin,Member,Guest" />
<user username="Diane" password="coder" roles="Member,Guest" />
<user username="Ted" password="newbie" roles="Guest" />
</tomcat-users>

------我们可以看到,上面声明的一些角色role,并定义的几个用户user-----
------不难发现,一个用户可以有多种角色 ---------------------------
然后是web.xml配置以下信息:
	<!-- 配置安全验证方式:1:BASIC-自己弹出对话框 2:FORM-自定义登录界面 -->
<login-config>
<!-- <auth-method>BASIC</auth-method>
<realm-name>Random</realm-name>>-->
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/error.html</form-error-page>
</form-login-config>
</login-config>
<!-- 角色:来源tomcat-users.xml的<role>元素 -->
<security-role>
<role-name>Admin</role-name>
</security-role>
<security-role>
<role-name>Member</role-name>
</security-role>
<security-role>
<role-name>Guest</role-name>
</security-role>
<!-- 指定角色特有资源-->
<security-constraint>
<web-resource-collection>
<!--这个名字是必要的,虽然你不会看到它的显示调用 -->
<web-resource-name></web-resource-name>
<!-- 指定受约束的资源(可以多个) -->
<url-pattern>/security/*</url-pattern>
<!-- GET POST请求是受约束的 可以为:PUT/TRACE/DELETE/HEAD/OPTIONS-->
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>


<!-- 授权给角色Admin Member,也就是拥有这两个角色其中之一的
用户,通过GET/POST 可以访问前面指定的授权资源。 -->
<auth-constraint>
<role-name>Admin</role-name>
<role-name>Member</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>


---------从上,你应该可以知道,这段XML保护的是应用上下文下security文件夹的资源
(应用上下文,对应你项目名称) ------------
你可以将我的配置复制:
并在上下文下新建security文件夹,随便建一个html
并,建立对应的 [color=red]login.html[/color] 和 [color=red]error.html[/color](当然,JSP和随便的命名是允许的,)[color=red]但是[/color]---------------------

注意:login.html有三个固定的元素,以下是我的html(如果你用JSP,请对[color=blue]j_security_check[/color]进行编码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<!--看到了没 j_security_check j_username j_password-->
<body>
<form action="j_security_check" method="POST">
<input type="text" name="j_username">
<input type="password" name="j_password">
<input type="submit" value="Enter">
</form>
</body>
</html>


上面的其中几个元素,有特殊规则如下
特殊规则:
<role-name>:如果存在一个<auth-constraint>元素,却没有任何<role-name>,那么所有的
用户都遭到拒绝.就算有其它的<auth-constraint>也如此(注:<auth-constraint>可以配置
多个

<auth-constraint>:如果不存在,容器允许不经认证就能访问这些URL

<security-constraint>:可以多个,也导致它在可以出现同时两个对资源进行限制且请求
方式相同但限制指定角色不同 而这些不同在<auth-constraint>中,有以下四种情况:
1: Guest + Admin = (Guest,Admin)
2: Guest + * = (*) //即所有人
3: <auth-constraint/> + admin = ()//即没有人
4: 没<auth-constraint> + Admin = (*)//所有人
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值