实现安全 JAX-RS 应用程序

Java™ API for RESTful Web Services (JAX-RS) 的 IBM® 运行时环境是由从 Apache Wink 项目派生的 servlet 驱动。在 WebSphere® Application Server 环境内,管理 Web 容器中 servlet 的生命周期。因此,Web 容器所提供的安全服务适用于 WebSphere Application Server 中部署的 REST 资源。

关于此任务

您可以使用用于组装 REST 应用程序的同一工具在 REST 资源上定义并添加安全性约束。 在与您应用程序关联的 J2EE Web 部署描述符中捕获这些约束。以下列表描述您可以包含在部署描述符中的安全性定义:
  • 调用应用程序中表现的 REST 资源时的用户认证,包括
    • HTTP 基本认证
    • 表单登录认证
  • 对 REST 资源的权限控制(由资源的 URL 模式定义)
  • 调用 REST 资源时将 SSL 用于传输
  • 以编程方式使用 SecurityContext 对象来确定用户身份和角色
Web 容器支持的所有安全性机制都适用于 REST 资源,包括使用基于 Kerberos 的 SPNEGO 认证机制。

过程

  1. 配置开发环境。
    1. 在开始开发 JAX-RS 应用程序之前,必须先通过将 JAX-RS 库添加到类路径来设置开发环境。
  2. 在 JAX-RS Web 应用程序中定义资源。
    1. 资源是 RESTful 服务的基本构建块。资源可以包含静态数据或动态更新的数据。来自在线书店应用程序的资源示例包括书籍、来自店铺的订单以及用户集合。通过在应用程序中标识资源,可以使服务更有用更易于开发。
  3. 配置 JAX-RS 应用程序。

    您可以根据需求以多种方式配置 JAX-RS 应用程序。 要利用 Java Platform, Enterprise Edition (Java EE) 6 功能,您可以使用注释扫描功能。 您可以使用注解扫描来忽略 JAX-RS javax.ws.rs.core.Application 子类或者最低限度定义 javax.ws.rs.core.Application 子类。或者,如果您希望使用 IBM JAX-RS Servlet 和过滤器中可用的功能,那么可以指定 IBM JAX-RS Servlet 和过滤器。

    您可以使用 JAX-RS V1.1 配置方法之一来忽略应用程序中的 javax.ws.rs.core.Application 子类或者具有 javax.ws.rs.core.Application 子类,后一种子类返回空的类集合来通知 JAX-RS 环境以查找和使用应用程序中的所有 JAX-RS 类。开发应用程序时,如果您不想将每一个相关 JAX-RS 类都手动添加到 javax.ws.rs.core.Application 子类,那么您可能要使用此方法。

    通过指定特定的 IBM JAX-RS Servlet 和过滤器,您可以利用 IBM JAX-RS 并确保其特定的行为。例如,使用 IBM JAX-RS 过滤器在以具有同一 URL 模式的 JAX-RS 资源与 JavaServer Pages (JSP) 文件的混合开发 Web 应用程序方面可能会有帮助。

    即使有支持使用可选 web.xml 文件的 JAX-RS V1.1 配置方法,如果要指定安全性约束或角色,或者如果要使用 web.xml 文件来利用已启用的其他功能,那么必须在 web.xml 文件中指定该信息。

    选择以下 3 种方法中的一种来配置 JAX-RS 应用程序:

    • 使用 JAX-RS 1.1 方法配置 JAX-RS 应用程序

      如果您希望使用注解扫描功能或使用 JAX-RS 1.1 配置方法,请使用此方法。可以使用注解扫描功能来提高应用程序可移植性、最小化配置代码数量或动态地修改应用程序而不需要更改应用程序代码。

    • 为 JAX-RS Servlet 配置 web.xml 文件

      如果您希望指定使用 servlet 初始化参数启用的功能来更改此行为且确保您获得 IBM JAX-RS Servlet,请使用此方法。使用 Servlet 时,您可以在 web.xml 文件中定义要对基本 URL 追加的 Servlet 路径。

    • 为 JAX-RS 过滤器配置 web.xml 文件

      在您拥有 JSP、其他 servlet 和过滤器以及具有 URL 模式混合的 JAX-RS 资源时,如果您希望使用此过滤器,请使用此方法。您可以配置 web.xml 文件以定义过滤器,这些过滤器指示可用于调用过滤器的可能 URL。

  4. 保护 Web 容器内的 JAX-RS 应用程序。
    1. 您可以使用可用于 Web 容器的安全服务来保护 REST 资源,方式是配置安全性机制,此机制将定义用户认证、传输安全、权限控制以及用户到角色的映射。
  5. 使用注释来保护 JAX-RS 资源。
    1. 您可以使用指定安全设置的注解来保护 JAX-RS 资源。您可以使用 @PermitAll、@DenyAll 和 @RolesAllowed 注解来覆盖在 web.xml 文件中定义的安全性约束的配置。
  6. (可选)保护下游 JAX-RS 资源。
    1. 您可以通过配置 BasicAuth 方法进行认证以及使用 LTPA JAX-RS 安全处理程序来利用单点登录进行用户认证以保护下游 JAX-RS 资源。
  7. (可选)使用 SSL 来保护 JAX-RS 客户机
    1. 您可以使用安全套接字层 (SSL) 传输层安全来保护 JAX-RS 应用程序与调用该应用程序的客户机之间的通信。
  8. 组装 JAX-RS Web 应用程序。
    1. 在您为 JAX-RS Web 应用程序开发 Java 类文件并编辑 web.xml 文件来启用 JAX-RS Servlet 之后,您准备好组装应用程序。请将 Web 应用程序组装成 Web 应用程序归档 (WAR) 包。如有需要,您可以将 WAR 软件包组装到企业归档 (EAR) 软件包中。
  9. 部署 JAX-RS Web 应用程序。
    1. 在组装 JAX-RS Web 应用程序之后,需要将 Web 归档 (WAR) 包或企业归档 (EAR) 包部署到应用程序服务器。
  10. 管理安全 JAX-RS 应用程序。
    1. 您实施了安全性机制(例如,基本 HTTP 认证或 REST 资源上基于角色的授权约束)之后,您可以使用管理控制台来通过将定义的角色映射到用户、组或特殊主体集来管理 JAX-RS 应用程序。

结果

您在应用程序服务器上开发并部署了安全的 JAX-RS Web 应用程序。您还可以使用管理控制台来管理安全的 JAX-RS 应用程序。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_impl_securejaxrs
文件名:twbs_jaxrs_impl_securejaxrs.html