<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全是新的,就是访问了两次
相关推荐
除了以上提到的配置,`web.xml`还可以包含错误页面定义、安全配置(如`<security-constraint>`)、本地化支持(`locale-encoding-mapping-list`)等。正确的配置有助于提升应用程序的性能、安全性和可维护性。理解并...
* security-constraint 元素:制定应该保护的 URL。它与 login-config 元素联合使用。 web.xml 文件是 Web 应用程序的配置文件,用于描述 Web 应用程序的各种配置信息。了解 web.xml 文件的结构和元素次序对于开发...
在 web.xml 文件中,第一个元素是 XML 头,指定了 XML 的版本号和编码方式。接着是 DOCTYPE 声明,用于指定文件类型定义(DTD),从而检查 XML 文档的有效性。 DOCTYPE 声明中包含了几个特性,告诉我们关于 DTD 的...
在`server.xml`中,我们需要配置`<Connector>`元素来启用HTTPS。以下是一个示例配置: ```xml SSLEnabled="true" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" ...
以下是对`Web.xml`中常见元素的详细解析: #### <web-app> - **作用**:根元素,所有其他配置元素都位于其内部,用于封装整个Web应用的配置。 #### - **作用**:定义Web应用的名称,通常用于GUI工具中显示应用...
下面将对`web.xml`中的关键元素进行详细介绍。 #### 1. `web-app` 这是`web.xml`的根元素,用于封装整个Web应用的配置信息。其内部包含了一系列子元素,如`servlet`、`filter`、`listener`等,它们共同构成了Web...
- `<security-constraint>`:定义安全约束,用于实现Web应用程序的安全访问控制。 - `<login-config>`:配置用户认证方式。 - `<resource-ref>`:声明外部资源引用,如数据源。 3. **最佳实践**: - 如果过滤器...
以下是 web.xml 文件中的一些常用元素: 1. `<web-app>`:web.xml 文件的根元素,用于描述 Web 应用的基本信息。 2. `<display-name>`:定义 Web 应用的名称。 3. `<description>`:声明 Web 应用的描述信息。 4. `...
本文将详细解释`web.xml`中的一些主要配置元素及其作用。 1. **定义头和根元素** `web.xml`文件必须以XML头开始,声明XML版本和字符编码,接着是DOCTYPE声明,指明servlet规范的版本(如2.2或2.3)以及DTD。根元素...
在Java Web开发中,`web.xml`文件是应用的核心配置文件,它定义了Servlet、过滤器、监听器等组件,并负责映射它们的行为。本文将深入解析`web.xml`配置,帮助开发者理解其背后的原理和用途。 一、web.xml文件概述 `...
尽管`web.xml`中并不直接使用`icon`元素来执行任何功能,但可以指定应用的图标(小图标16x16,大图标32x32),这对于编辑器界面或应用识别具有一定的视觉意义: ```xml <small-icon>/images/small-icon.gif ...
15. `security-constraint`和`login-config`元素协同工作,实现Web应用的安全控制,如访问限制和身份验证。 这些配置元素是构建和管理Web应用程序的基础,理解它们的功能和使用方法对于编写健壮、可维护的Web应用至...
以下是对web.xml配置文件中各个元素的详细说明: 1. **定义头和根元素** - **XML头**:文件开头必须包含XML声明,指定XML版本和字符编码,如`<?xml version="1.0" encoding="UTF-8"?>` - **DOCTYPE声明**:紧接着...
在Java Web开发中,`web.xml`是部署描述符(Deployment Descriptor)的核心文件,它定义了应用程序的行为和结构。这个CHM文件深入解析了`web.xml`的各种配置元素,帮助开发者更好地理解和控制Web应用程序的运行方式...
在Java EE应用开发中,`web.xml`是一个至关重要的配置文件,它被称为部署描述符(Deployment Descriptor)。这个文件主要用于定义应用程序的行为,特别是关于Web应用程序的组件、如Servlet、过滤器和监听器等的配置...
web.xml文件中的配置元素需要遵守严格的顺序,这是因为早期的Servlet容器可能不支持乱序的部署描述符文件。按照规范,以下是web.xml中可以出现的元素及其必须遵循的顺序: 1. icon 2. display-name 3. description ...
在Java Web开发中,`web.xml`是Web应用程序的部署描述符,它是服务器理解和运行Web应用的关键配置文件。本文将详细解释`web.xml`配置的各个方面,帮助开发者更好地理解和掌握其使用。 1. **定义头和根元素** `web....