`

web.xml中的Security Constraint元素

 
阅读更多

<security-constriant>元素是tomcat用来指示服务器对客户端访问服务端资源进行安全约束。如果不通过验证则报403错误

<security-constraint>

    <web-resource-collection>

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

      <url-pattern>/index.jsp</url-pattern>

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

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

      <http-method>PUT</http-method>

    </web-resource-collection>

    <auth-constraint>

      <role-name>pluto</role-name>

    </auth-constraint>

  </security-constraint>

  

  <login-config>

    <auth-method>FORM</auth-method>

    <form-login-config>·

      <form-login-page>/login.jsp</form-login-page>

      <form-error-page>/login.jsp?error=1</form-error-page>

    </form-login-config>

  </login-config>

 

  <security-role>

    <role-name>pluto</role-name>

  </security-role> 

 

<security-constriant>包含4个可能的子元素,分别是:web-resource-collection、auth-constraint、user-data-constraint和display-name。

1.web-resource-collection 此元素确定要保护的资源,所有security-constraint元素都必须包含至少一个此项。此元素下面有一个给出任意标识名称的<web-resource-name>、一个确定要保护的URL的url-pattern元素、一个指出此保护所适用的HTTP命令(缺省为所有方法)的http-method元素和一个提供资料的可选description元素组成。如上例中就是当你以GET、POST、PUT方法访问"/index.jsp"时将被限制。我们平时默认是GET方法访问如果把<http-method>GET</http-method>这行注释掉就不会报错了

 

2.auth-constraint元素指出哪些用户应该具有受保护资源的访问权。此元素应该包含一个或多个标识具有访问权限的用户role-name元素,以及可选的description元素。如果security-constraint中没有auth-constraint子元素,任何身份的用户都可以访问相应的资源,也就是说security-constraint这时实际上不起作用。此元素需要和<login-config>配合使用,<login-config>要紧跟security-constraint后面

 

3.user-data-constraint 此可选元素指出在访问相关资源时使用的传输层保护

 

 

<login-conifg>有四种认证类型

BASIC:HTTP规范,Base64

DIGEST:HTTP规范,数据完整性强一些,但不是SSL

CLIENT-CERT:J2EE规范,数据完整性很强,公共钥匙(PKC)

FORM:J2EE规范,数据完整性非常弱,没有加密,允许有定制的登录界面

如上例,登录界面即login.jsp。这里的FORM方式需要说明的是,登录界面的固定元素

<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"这些都是固定的元素。

然后这里的username,password要填什么呢?tomcat的conf目录下有个tomcat-users.xml文件,里面可以添一行<user name="mao" password="mao" roles="tomcat,pluto"/>,这里的意思是tomcat和pluto角色的用户名密码都是“mao”。

现在访问"/index.jsp"界面,跳转到login.jsp,填写用户名、密码“mao”之后就能访问到index.jsp的内容了

 

 

还有一点很重要security-constraint只对外部访问有作用,对内部跳转是不起作用的。

比如访问一个servlet,如果是以response.sendRedirect("/xiangmuming/index.jsp")的方式,还是会报403错误,如果是以request.getRequestDispatcher("/index.jsp").forword(request,response)的方式跳转就能够访问了

 

request.getRequestDispatcher().forward(),是属于服务器跳转,地址栏地址不变,旧的request,response全部传给页面

request.sendRedirect(),属于页面跳转,相当于访问两次,地址改变,request,response全是新的,就是访问了两次

  • 大小: 24.3 KB
分享到:
评论

相关推荐

    详解Spring mvc的web.xml配置说明

    除了以上提到的配置,`web.xml`还可以包含错误页面定义、安全配置(如`&lt;security-constraint&gt;`)、本地化支持(`locale-encoding-mapping-list`)等。正确的配置有助于提升应用程序的性能、安全性和可维护性。理解并...

    web.xml配置详解, web.xml web.xml 配置实例

    * security-constraint 元素:制定应该保护的 URL。它与 login-config 元素联合使用。 web.xml 文件是 Web 应用程序的配置文件,用于描述 Web 应用程序的各种配置信息。了解 web.xml 文件的结构和元素次序对于开发...

    web.xml配置详解

    在 web.xml 文件中,第一个元素是 XML 头,指定了 XML 的版本号和编码方式。接着是 DOCTYPE 声明,用于指定文件类型定义(DTD),从而检查 XML 文档的有效性。 DOCTYPE 声明中包含了几个特性,告诉我们关于 DTD 的...

    为tomcat服务器配置https,tomcat需要设置的server.xml与web.xml配置

    在`server.xml`中,我们需要配置`&lt;Connector&gt;`元素来启用HTTPS。以下是一个示例配置: ```xml SSLEnabled="true" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" ...

    Web.xml常用元素

    以下是对`Web.xml`中常见元素的详细解析: #### &lt;web-app&gt; - **作用**:根元素,所有其他配置元素都位于其内部,用于封装整个Web应用的配置。 #### - **作用**:定义Web应用的名称,通常用于GUI工具中显示应用...

    web.xml元素详解

    下面将对`web.xml`中的关键元素进行详细介绍。 #### 1. `web-app` 这是`web.xml`的根元素,用于封装整个Web应用的配置信息。其内部包含了一系列子元素,如`servlet`、`filter`、`listener`等,它们共同构成了Web...

    web.xml加载顺序与web.xml常用节点解析

    - `&lt;security-constraint&gt;`:定义安全约束,用于实现Web应用程序的安全访问控制。 - `&lt;login-config&gt;`:配置用户认证方式。 - `&lt;resource-ref&gt;`:声明外部资源引用,如数据源。 3. **最佳实践**: - 如果过滤器...

    J2EE中关于web.xml文件的配置

    以下是 web.xml 文件中的一些常用元素: 1. `&lt;web-app&gt;`:web.xml 文件的根元素,用于描述 Web 应用的基本信息。 2. `&lt;display-name&gt;`:定义 Web 应用的名称。 3. `&lt;description&gt;`:声明 Web 应用的描述信息。 4. `...

    web.xml的配置

    本文将详细解释`web.xml`中的一些主要配置元素及其作用。 1. **定义头和根元素** `web.xml`文件必须以XML头开始,声明XML版本和字符编码,接着是DOCTYPE声明,指明servlet规范的版本(如2.2或2.3)以及DTD。根元素...

    java web项目 web.xml配置详解

    在Java Web开发中,`web.xml`文件是应用的核心配置文件,它定义了Servlet、过滤器、监听器等组件,并负责映射它们的行为。本文将深入解析`web.xml`配置,帮助开发者理解其背后的原理和用途。 一、web.xml文件概述 `...

    web.xml配置解析

    尽管`web.xml`中并不直接使用`icon`元素来执行任何功能,但可以指定应用的图标(小图标16x16,大图标32x32),这对于编辑器界面或应用识别具有一定的视觉意义: ```xml &lt;small-icon&gt;/images/small-icon.gif ...

    Web.xml配置详解

    15. `security-constraint`和`login-config`元素协同工作,实现Web应用的安全控制,如访问限制和身份验证。 这些配置元素是构建和管理Web应用程序的基础,理解它们的功能和使用方法对于编写健壮、可维护的Web应用至...

    web.xml详细配置说明

    以下是对web.xml配置文件中各个元素的详细说明: 1. **定义头和根元素** - **XML头**:文件开头必须包含XML声明,指定XML版本和字符编码,如`&lt;?xml version="1.0" encoding="UTF-8"?&gt;` - **DOCTYPE声明**:紧接着...

    web.xml配置详细介绍(CHM)

    在Java Web开发中,`web.xml`是部署描述符(Deployment Descriptor)的核心文件,它定义了应用程序的行为和结构。这个CHM文件深入解析了`web.xml`的各种配置元素,帮助开发者更好地理解和控制Web应用程序的运行方式...

    web.xml 配置大全

    在Java EE应用开发中,`web.xml`是一个至关重要的配置文件,它被称为部署描述符(Deployment Descriptor)。这个文件主要用于定义应用程序的行为,特别是关于Web应用程序的组件、如Servlet、过滤器和监听器等的配置...

    web.xml+详细解析四合一

    web.xml文件中的配置元素需要遵守严格的顺序,这是因为早期的Servlet容器可能不支持乱序的部署描述符文件。按照规范,以下是web.xml中可以出现的元素及其必须遵循的顺序: 1. icon 2. display-name 3. description ...

    一篇关于web.xml配置的详细说明

    在Java Web开发中,`web.xml`是Web应用程序的部署描述符,它是服务器理解和运行Web应用的关键配置文件。本文将详细解释`web.xml`配置的各个方面,帮助开发者更好地理解和掌握其使用。 1. **定义头和根元素** `web....

Global site tag (gtag.js) - Google Analytics