安全
本节详细介绍了Web容器包含在一个产品中时额外的安全性要求,还包含EJB、JACC和(或)JASPIC。以下各节将介绍这些要求。
EJB™调用传播的安全标识
必须始终提供一个安全标识或主体(principal),用于调用一个企业 bean。从 Web 应用程序中调用企业 Bean 的默认模式是为把 Web 用户的安全标识传播到 EJB 容器。
在其他情况下,Web 容器必须允许不了解 Web 容器或 EJB 容器的 web 用户进行调用:
- Web 容器必须支持未把自己授权给容器的用户访问 Web 资源。这是在互联网上访问Web资源常见的模式。
- 应用程序代码可以是单点登录和基于调用者标识的定制化数据的唯一处理器。
在这些情况下,Web应用程序部署描述文件可以指定一个 run-as 元素。当为Servlet 指定了一个 run-as 角色时,Servlet 容器必须传播主要的映射到该角色,作为任何从 Servlet 到 EJB 调用的安全标识,包括从Servlet的init和destory方法进行原始调用。安全角色名必须是为Web应用程序定义的安全角色名称之一。
由于Web容器作为Java EE平台的一部分运行,在同一个Java EE应用程序中调用EJB组件,以及调用部署在其他Java EE中的应用程序都必须支持run-as元素的使用。
容器授权的要求
在Java EE产品中或包括支持 Java 容器授权合约(JAAC, i.e, JSR 115)的产品中,所有 Servlet 容器必须实现支持JACC。JACC规范可在此处下载 http://www.jcp.org/en/jsr/detail?id=115
容器认证的要求
在 Java EE 产品中或包括支持 Java 容器认证SPI(JASPIC, i.e, JSR 196)的产品中,所有 Servlet 容器必须实现 JASPIC 规范的 Servlet 容器 Profile。JASPIC 规范可在此处下载 http://www.jcp.org/en/jsr/detail?id=196