`
j2ee_zhongqi
  • 浏览: 203105 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

web.xml中<security-constraint>和四种认证类型

阅读更多
<security-constraint> 的子元素 <http-method> 是可选的,如果没有 <http-method> 元素,这表示将禁止所有 HTTP 方法访问相应的资源。
子元素 <auth-constraint> 需要和 <login-config> 相配合使用,但可以被单独使用。如果没有 <auth-constraint> 子元素,这表明任何身份的用户都可以访问相应的资源。也就是说,如果 <security-constraint> 中没有 <auth-constraint> 子元素的话,配置实际上是不起中用的。如果加入了 <auth-constraint> 子元素,但是其内容为空,这表示所有身份的用户都被禁止访问相应的资源。
web.xml:
<security-constraint>  
  <display-name>  
  baseporject</display-name>  
  <web-resource-collection>  
   <web-resource-name>baseproject</web-resource-name>  
   <url-pattern>*.jsp</url-pattern>  
   <url-pattern>*.do</url-pattern>  
   <http-method>GET</http-method>  
   <http-method>PUT</http-method>  
   <http-method>HEAD</http-method>  
   <http-method>TRACE</http-method>  
   <http-method>POST</http-method>  
   <http-method>DELETE</http-method>  
   <http-method>OPTIONS</http-method>  
  </web-resource-collection>  
  <auth-constraint>  
   <description>  
   baseproject</description>  
   <role-name>All Role</role-name>  
  </auth-constraint>  
  <user-data-constraint>  
   <transport-guarantee>NONE</transport-guarantee>  
  </user-data-constraint>  
</security-constraint>  
<login-config>  

<security-constraint> 
  <display-name> 
  baseporject</display-name> 
  <web-resource-collection> 
   <web-resource-name>baseproject</web-resource-name> 
   <url-pattern>*.jsp</url-pattern> 
   <url-pattern>*.do</url-pattern> 
   <http-method>GET</http-method> 
   <http-method>PUT</http-method> 
   <http-method>HEAD</http-method> 
   <http-method>TRACE</http-method> 
   <http-method>POST</http-method> 
   <http-method>DELETE</http-method> 
   <http-method>OPTIONS</http-method> 
  </web-resource-collection> 
  <auth-constraint> 
   <description> 
   baseproject</description> 
   <role-name>All Role</role-name> 
  </auth-constraint> 
  <user-data-constraint> 
   <transport-guarantee>NONE</transport-guarantee> 
  </user-data-constraint> 
</security-constraint> 
<login-config>Xml代码 
<!--四种验证方式,附在最后有说明-->  
  <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>  
<security-role>  
  <role-name>All Role</role-name>  
</security-role>  

<!--四种验证方式,附在最后有说明--> 
  <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> 
<security-role> 
  <role-name>All Role</role-name> 
</security-role> 


    security-constriaint元素的用途是用来指示服务器使用何种验证方法了.此元素在web.xml中应该出现在login-config的紧前面。它包含是个可能的子元素,分别是:web-resource-collection、auth-constraint、user-data-constraint和display-name。下面各小节对它们进行介绍。
1. web-resource-collection
  此元素确定应该保护的资源,所有security-constraint元素都必须包含至少一个web-        resource-collection项.此元素由一个给出任意标识名称的web-resource-name元素、一个确定应该保护URL    的url-pattern元素、一个指出此保护所适用的HTTP命令(GET、POST等,缺省为所有方法)的http-method元素和一个提供资料的可选description元素组成。
    重要的是应该注意到,url-pattern仅适用于直接访问这些资源的客户机。特别是,它不适合于通过MVC体系结构利用RequestDispatcher来访问的页面,或者不适合于利用类似jsp:forward的手段来访问的页面。
2. auth-constraint
元素却指出哪些用户应该具有受保护资源的访问权。此元素应该包含一个或多个标识具有访问权限的用户类别role-name元素,以及包含(可选)一个描述角色的description元素。
3. user-data-constraint
这个可选的元素指出在访问相关资源时使用任何传输层保护。它必须包含一个transport-guarantee子元素(合法值为NONE、INTEGRAL或CONFIDENTIAL),并且可选地包含一个description元素。transport-guarantee为NONE值将对所用的通讯协议不加限制。INTEGRAL值表示数据必须以一种防止截取它的人阅读它的方式传送。虽然原理上(并且在未来的HTTP版本中),在INTEGRAL和CONFIDENTIAL之间可能会有差别,但在当前实践中,他们都只是简单地要求用SSL。
4 四种认证类型:

BASIC:HTTP规范,Base64 
<web-app> 
    ...... 
    <login-config> 
        <auth-method>BASIC</auth-method> 
    </login-config> 
    ...... 
</web-app> 

DIGEST:HTTP规范,数据完整性强一些,但不是SSL 
<web-app> 
    ...... 
    <login-config> 
        <auth-method>DIGEST</auth-method> 
    </login-config> 
    ...... 
</web-app> 

CLIENT-CERT:J2EE规范,数据完整性很强,公共钥匙(PKC) 
<web-app> 
    ...... 
    <login-config> 
        <auth-method>CLIENT-CERT</auth-method> 
    </login-config> 
    ...... 
</web-app> 

FORM:J2EE规范,数据完整性非常弱,没有加密,允许有定制的登陆界面。
<web-app>
    ......
    <login-config>
        <auth-method>FORM</auth-method>
        <form-login-config>
            <form-login-page>/login.html</form-login-page>
            <form-error-page>/error.jsp</form-error-page>
        </form-login-config>
    </login-config>
    ......
</web-app>
这里的 FORM 方式需要说明的是 登录页面的固定的元素:login.html

<form name="loginform" method="post" action="j_security_check"> 

<INPUT name="j_username" type="text"> 

<INPUT name="j_password" TYPE="password"> 

<input type="submit" value="登 录" > 

</form> 

form 的action 必须是j_security_check, method="post", 用户名 name="j_username" , 密码name="j_password"  这些都是固定的元素
分享到:
评论
1 楼 337240552 2012-11-02  

相关推荐

    启用了不安全的http方法漏洞

    在web.xml文件中配置下面一段内容 &lt;security-constraint&gt; &lt;web-resource-collection&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;http-method&gt;PUT&lt;/http-method&gt; &lt;http-method&gt;DELETE&lt;/http-method&gt; &lt;http-method&gt;HEAD&lt;/...

    web.xml详解(web-app_2_3.dtd)

    部署描述文件web.xml详解(web-app_2_3.dtd),全面介绍: 1. icon元素 2. display-name元素 3. description元素 4. distributable元素 5. context-param元素 6. filter元素 7. filter-mapping元素 8. ...

    Tomcat压缩包下载资源

    Tomcat压缩包 资源下载,tomcat自带了一套管理程序...无论是basic还是digest,设置过程基本一致,在conf/server.xml中添加realm数据源,在{project}/WEB-INF/web.xml中添加 security-constraint 和 login-config属性。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    Java™ Servlet 规范.

    2.3.1 加载和实例化 ................................................................................................................................16 2.3.2 初始化 ........................................

    Principles of Distributed Database Systems

    Introduction . . . . . . . . . ....1.1 Distributed Data Processing .... ....1.3 Data Delivery Alternatives ....1.4 Promises of DDBSs ....1.4.2 Reliability Through Distributed Transactions ....1.4.3 Improved Performance...

    Servlet3.1规范(最终版) PDF

    16 2.3.1 加载和实例化 ................................................................................................................................16 2.3.2 初始化 ....................................

    RESTful Web Services Cookbook

    While the REST design philosophy has captured the imagination of web and enterprise developers alike, using this approach to develop real web services is no picnic. This cookbook includes more than ...

Global site tag (gtag.js) - Google Analytics