`

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

阅读更多
------------------tomcat .5.5 测试可用----------------阅读声明: 本次案例,使用tomcat的tomcat-users.xml文件
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
并,建立对应的 login.htmlerror.html(当然,JSP和随便的命名是允许的,)但是---------------------

注意:login.html有三个固定的元素,以下是我的html(如果你用JSP,请对j_security_check进行编码
<!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 = (*)//所有人
分享到:
评论

相关推荐

    J2EE_API_5[1].0.rar

    EJB 3.0引入了实体Bean的注解驱动,使得开发者无需XML配置即可定义持久化实体。此外,会话Bean也变得更轻量级,支持无状态和有状态会话Bean,并引入了名为"Singleton"的新会话Bean类型。 2. **JSF 1.2**:Java...

    J2EE_5.0.rar_chm_j2ee 5 c++_j2ee5.0_j2ee5.0 api c++_j2ee5.0 api

    2. **统一的注解(Annotations)**:大量使用注解替代XML配置,如`@EJB`, `@WebService`, `@PersistenceContext`等,提高了代码的可读性和可维护性。 3. **Java Persistence API (JPA)**:为数据持久化提供了标准...

    j2ee.rar_J2EE系统_j2ee 系统_j2ee.jsp

    通常,一个J2EE项目可能包含Servlets、JSP页面、EJBs、配置文件(如web.xml、ejb-jar.xml)、数据库连接配置以及其他的辅助类。这些文件共同构成了一个完整的应用程序,用户可以下载并研究其架构和实现细节,以学习...

    j2ee_servlet_api.zip免费下载

    3. 部署应用:将Servlet类的编译结果(.class文件)和web.xml放入Web应用的结构中,然后将整个应用部署到服务器。 通过理解并熟练运用Servlet API,开发者可以构建功能丰富的Web应用,实现动态页面生成、用户交互、...

    j2ee_java_游戏论坛管理.zip

    2. **配置文件**(.xml):如web.xml,定义了Web应用的部署描述符,用于配置Servlet、过滤器、监听器等。 3. **资源文件**:如数据库连接字符串、本地化文本、图片等。 4. **编译后的字节码**(.class):Java源代码...

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

    在 J2EE 中,web.xml 文件扮演着非常重要的角色,它是一个基于 XML 的配置文件,用于描述 Web 应用的各个方面的配置信息。通过 web.xml 文件,我们可以对 Web 应用进行配置,例如设置应用程序的名称、描述、过滤器、...

    J2EE_的_13_种核心技术.doc

    7. **XML (eXtensible Markup Language)**:XML用于数据交换和结构化数据描述,常用于Web服务和配置文件。 8. **JMS (Java Message Service)**:JMS提供了消息传递机制,允许异步通信和解耦组件,增强了系统的可...

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

    在J2EE环境中,`web.xml`是Web应用程序的部署描述符,它是整个应用的核心配置文件,用于定义应用的行为、组件、安全性以及与其他服务的交互方式。下面将详细介绍其中的一些关键元素。 1. **&lt;web-app&gt;**: 这是web....

    Flex_J2EE_Lcds在myEclipse中的配置.rar

    总结,配置Flex、J2EE和LCDs在myEclipse中是一项关键任务,它使得开发者能利用Flex的强大UI设计能力,结合J2EE的后端处理能力,构建出功能丰富的Web应用。通过上述步骤,你将能够顺利地完成这一过程,并为开发高质量...

    J2EE.application_Sample.rar_jsme

    **J2EE应用程序详解与JSME** 在Java技术体系中,J2EE(Java 2 Platform, Enterprise Edition)是一个用于构建企业级应用的框架,它为开发者提供了多种服务和组件模型,以支持分布式、多层架构的应用程序。J2EE平台...

    J2EE_6.0_jar包

    JSF 2.0带来了更少的XML配置,更多注解支持,以及更好的性能和用户体验。 综上所述,"J2EE_6.0_jar包"可能包含了一些关键的库和组件,如Spring MVC和Hibernate Validator,这些都是在J2EE 6.0环境下进行高效、健壮...

    J2EE_spring_struts_课件

    学习这个课件,初学者会了解到如何创建和配置XML配置文件,如Spring的beans.xml和Struts的struts.xml,这两个文件是控制框架行为的关键。此外,还会涉及到JavaBean的使用,以及如何通过Action类和控制器进行业务逻辑...

    J2EE应用开发_初识J2EE

    ### J2EE应用开发_初识J2EE #### JSP简介 JavaServer Pages (简称JSP) 是一种由Sun Microsystems公司(现已被Oracle收购)主导,并与多个其他技术提供商合作开发的一种动态网页技术标准。它允许开发人员将Java代码...

    web.xml配置详细说明.txt

    在J2EE应用程序开发中,`web.xml`文件被称为部署描述符,它是应用程序的核心配置文件。这个文件定义了Web应用的结构、行为以及服务器如何处理请求。本文将深入解析`web.xml`配置文件中的各个元素及其用法。 一、web...

    J2EE考试复习试题_struts2_spring_hibernate.doc

    - **配置文件**:Hibernate应用通常使用名为`hibernate.cfg.xml`的配置文件,该文件通常放置在项目的类路径下。 - **方言配置**:`hibernate.dialect`属性用于配置数据库方言,以适配不同的数据库管理系统。 - **...

    J2EE.rar_hibernate_j2ee chm_spring_struts spring_struts spring i

    Eclipse提供了强大的代码编辑、调试、构建和项目管理功能,支持J2EE应用的开发。通过安装各种插件,如WTP(Web Tools Platform),可以方便地进行Web和企业级项目的开发。 Struts是一个基于MVC(Model-View-...

    j2ee-5_0-pr-spec.pdf

    - **简化部署**:J2EE 5.0 支持使用注解来配置 Web Services,从而避免了大量的 XML 文件配置工作。 - **SOAP 消息处理**:新增了对 SOAP 消息级别的处理能力,例如错误处理、消息头的使用等。 ##### 3. 安全性的...

    BBS.rar_BBS项目_bbs_bbs j2ee_j2ee b_j2ee bbs

    J2EE(Java 2 Platform, Enterprise Edition)是一个用于构建企业级应用的平台,它提供了多种服务,如安全性、事务处理、以及Web服务支持等,以帮助开发者创建分布式、多层的复杂应用。 【描述】"J2EE——BBS项目,...

Global site tag (gtag.js) - Google Analytics