EE.3 安全
本章描述了JavaEE产品必须满足的J2EE平台对安全的要求.
额外地, 每个JavaEE产品厂商必须在他们的实现中决定安全等级和安全保证.
EE.3.1 介绍
差不多每家企业都有安全要求, 并且会有相应的机制和结构来满足要求. 可以被很多用户访问的或者能够被开放式未被保护网络访问的敏感资源都应该被保护.
尽管保证质量和实现细节会不同, 他们共同具有以下特征:
● 验证: 互相关联的实体(例如, 客户端和服务器)可以相互验证获得特别通行许可, 从而获得访问授权.
● 资源访问控制: 对资源进行控制从而限制用户或者程序访问, 来达到保密性,完整性和可用性的系统要求.
● 数据完整: 需要验证信息是否被第三方修改过.(比如某些实体已经不是原来的信息). 例如, 接受方通过网络发出的信息在被修改过, 则应该能被检测及丢弃.
● 欺骗和数据隐私:确保信息只能被已授权访问它的用户访问.
● 不可否认性: 用户不能否认他们做过的事情.
● 审查: 这个特征意味着可以采集安全事件相关的不可窜改记录, 从而可以使用这些记录来论证安全策略和机制的效果.
本章节指出JavaEE平台上怎样处理安全需求, 并且标识出哪些要由JavaEE产品厂商来处理. 最后, 本规范未来的需要讨论的东西将会在Section EE.3.7"发展"中被提到.
EE.3.2 一个简单例子
通过一个简单的例子可以更好的理解JavaEE环境的安全行为. 这个例子包括: Web客户端, Jsp用户接口, enterprise bean业务逻辑.(这个例子并不包含特殊情况)
在这个例子中, Web客户端收集验证数据并且使用这些数据通过Web服务器来做为它的验证代理, 从而建立一个验证过的会话.
第一步: 初始化请求
Web客户端请求主应用的URL, 如图片EE.3-1所示.
由于客户端并没有通过应用环境的身份验证, 所以服务器有责任来为应用提供Web这部分来检测这一块, 并且调用合适的验证机制来保护资源.
第二步: 初始化验证
Web服务器返回一个表单, Web客户端使用它来收到验证信息(例如: 用户名和密码). Web客户端继续将验证数据送到Web服务器, Web服务器来验证它, 如Figure EE.3-2所示.
验证机制可能只影响到服务器, 也可以影响下层的安全服务. 如果通过了验证, Web服务器就给用户发送一个信任标识.
第三步: URL授权
当用户访问受限资源的时候, 该信任标识就被用来判断用户是否被授权了. Web服务器获取安全策略(从部署描述符中获取)关联的Web资源来决定当前安全角色是否被允许访问该资源. Web容器接下来会把当前用户的信任标识与每个角色相比对, 判断它能否把用户映射到角色. 如图EE.3-3所示.
当Web服务器能将用户映射到角色, 那么Web服务器就将以"已授权"为输出结果.
当Web服务器不能将用户映射到任何角色, 那么Web服务器就将以"未授权"为输出结果.
第四步: 全部的初始请求
如果用户已授权, Web服务器将返回原始请求的结果, 如下图EE.3-4所示.
在我们的例子的中, 返回的是一个JSP页面的url, 从而可以让用户提交那些要被应用的业务逻辑组件所处理的数据.
第五步: 调用Enterprise Bean业务方法.
JSP页面使用用户凭证与enterprise bean建立安全连接, 从而呼叫enterprise bean的远程方法(如图表EE.3-5所示).这个关联是通过两边的安全上下文建立的, 一个是在web服务器端, 另一个是在EJB容器里.
- 大小: 9.8 KB
- 大小: 12.2 KB
- 大小: 15.7 KB
- 大小: 17.4 KB
- 大小: 23.6 KB
分享到:
相关推荐
Java企业版(Java EE,全称为Java Platform, Enterprise Edition)...通过阅读“javaee-5_0-fr-spec.pdf”文档,开发者可以获得关于Java EE 5的详细规范和指南,从而更好地理解和利用这个平台来构建高质量的企业应用。
JavaEE源代码 jacc-1_0-frJavaEE源代码 jacc-1_0-frJavaEE源代码 jacc-1_0-frJavaEE源代码 jacc-1_0-frJavaEE源代码 jacc-1_0-frJavaEE源代码 jacc-1_0-frJavaEE源代码 jacc-1_0-frJavaEE源代码 jacc-1_0-frJavaEE源...
5. **JPA**:Java Persistence API是JavaEE提供的ORM(Object-Relational Mapping)框架,用于处理Java对象和关系数据库之间的映射。它可以简化数据访问,并支持CRUD操作和查询语言(JPQL)。 6. **JNDI**:Java ...
JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1...
5. **依赖注入 (DI)**:依赖注入是一种设计模式,通过它可以在运行时自动配置对象的依赖关系,从而避免在代码中硬编码这些依赖。这有助于提高代码的可测试性和可重用性。 6. **面向注解的配置**:在Java EE 6 Web ...
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
Java EE 规范(英文版) 包括以下部分 servlet-2_4-fr-spec ...javaee-5_0-fr-spec javamail-1.4-mrel jaxb-2_0-fr-spec jaxws-2_0-fr-spec jsp-2_1-fr-spec jsp-2_1-fr-spec-el jstl-1_2-mrel2-spec jta-1_0_1B-spec
JavaEE-api-7.0_EN 最新发布的7.0 JavaEE
mysql-apt-config_0.8.0-1_all.deb
eclipse-jee-win32-x86_64安装包,下载回来解压直接打开可用,亲测完全可用,不用担心。适合32位系统,64位系统。这个eclipse开发软件可用于javaEE,java,调试等等,用来学习javaWeb,javaSE或开发项目都非常好用
Eclipse JavaEE 2020-03是一款专为Java企业级开发设计的集成开发环境(IDE),它是Eclipse项目的一部分,旨在提供强大的工具集,支持Java应用程序的开发、测试和部署。这个版本,"eclipse-jee-2020-03-R-incubation-...
javaee-api-8.0-javadoc.jar,这是javaee1.8api的jar包,解压后可用javadoc2chm制作成chm帮助文档。
本项目"javaee-website-test-master"是一个关于使用Java EE进行Web开发的示例工程,用于教学目的,编号为"2434016-developpez-des-sites-web-avec-java-ee",旨在帮助开发者掌握Java EE Web应用的开发技巧。...
5. 创建新项目,选择JavaSE项目模板,然后编写和运行代码。 总的来说,"eclipse-java-2020-06-R-win32-x86_64.zip"为64位Windows用户提供了便捷的Java开发环境。它不仅适合初学者,也满足专业开发人员的需求,通过...
在这个“javaEE-.zip”压缩包中,包含的是一个JavaEE学生个人成绩管理系统,这是一个典型的Web应用程序,旨在帮助管理和追踪学生的学术成绩。 JavaEE(Java Platform, Enterprise Edition)是一个开放源代码的标准...
java javaee-api-6.0-5
javaee-api-5.jar 如果帮到你了,在评论里美言几句吧
javaweb/javaEE常用jar包,亲测可用,导入到java工程中使用
JavaEE(Java Enterprise Edition)平台规范是Java开发者在构建企业级应用时的重要指南。它定义了开发、部署和管理分布式应用程序的一系列标准和技术。JavaEE是Oracle公司(原Sun Microsystems)推出的,旨在提供一...