Java Servlet 3.0支持安全

此次发布的WebSphere® Application Server支持 Java™ Servlet 中定义的所有安全更新3.0规格。

此次发布的WebSphere Application Server支持 Java Servlet 中定义的所有安全更新3.0规格 ( JSR-315),包括新的 servlet 安全注释、使用新的编程安全 API 以及 servlet 安全配置的动态更新。

重要的增强功能是对 Servlet 提供了新的注释支持。 开发人员可以使用注释来声明安全约束,而不是将其声明为web.xml文件,在 Java Servlet 之前使用3.0 。 web.xml 文件将继续起作用,并覆盖定义为注释的任何冲突。

支持的 Java Servlet 列表3.0安全更新包括以下内容:
  • 支持 @ServletSecurity 注释
  • 支持动态更新 Servlet 安全性注释 @RunAs、@declareRoles 和 @ServletSecurity
  • 支持认证、登录和注销 Servlet 安全性方法
  • 新的 com.ibm.websphere.security.displayRealm 属性指定 HTTP 基本认证登录窗口是否显示应用程序 web.xml 文件中未定义的领域名。

下面讨论 Java Servlet 3.0更详细的安全更新:

支持 @ServletSecurity 注释:

当应用程序进行部署时,ServletSecurity MergeAction 实现将查找所有具有 ServletSecurity 注释的 Servlet。 对于每个已注释的 Servlet,它会根据 WebServlet 注释来查找与所给定类相关联的 Servlet。 如果在部署描述符中找不到 ServletSecurity 注释中的 RolesAllowed,那么它将在此部署描述符中为角色创建 role-name 属性。

当应用程序启动时,WebContainer 将检查所有具有 RunAs、declareRoles 和 ServletSecurity 注释的 Servlet,并对 ServletRegistration 注释的 setServletSecurity() 方法设置这些注释。 WebContainer 将通知安全性组件检查所有具有 URL 模式和安全性约束的 ServletRegistration 注释。 然后,安全性组件将确定部署描述符中是否定义了 URL 模式。 如果在部署描述符中未定义 URL 模式,那么会创建然后使用 URL 模式中的安全性约束和 RunAs 角色。 如果在部署描述符中已定义精确匹配,那么会使用部署描述符的 URL 模式中的安全性约束和 RunAs 角色,而不使用注释数据。

请阅读“安全性注释”主题以了解更多信息。

支持动态更新 Servlet 安全性注释 @RunAs、@declareRoles 和 @ServletSecurity:

当应用程序启动时,Web 容器将检查所有具有 RunAs、declareRoles 和 ServletSecurity 注释的 Servlet,并对 ServletRegistration 注释的 setServletSecurity() 方法设置这些注释。 Web 容器将通知安全性组件检查所有具有 URL 模式和安全性约束的 ServletRegistration 注释。 然后,安全性组件将确定部署描述符中是否定义了 URL 模式。 如果在部署描述符中已定义精确匹配,那么会使用部署描述符的 URL 模式中的安全性约束和 RunAs 角色,而不使用动态数据。

请阅读“Servlet 安全性动态注释”主题以了解更多信息。

笔记: WebSphere Application Server支持默认授权提供程序和基于 Java 容器授权契约 (JACC) 规范的授权提供程序。 基于 JACC 的授权提供程序(例如,Tivoli® Access Manager)允许第三方安全提供程序处理Java EE授权。 本机授权和 JACC 都支持 RunAs、declareRoles 和 ServletSecurity 注释。

支持认证、登录和注销 Servlet 安全性方法:

authenticate 方法使用WebSphere Application Server为 servlet 上下文配置的容器登录机制。

登录方法向WebSphere Application Server使用用户 ID 和密码。 如果认证成功,那么会在线程和轻量级第三方认证 (LTPA) cookie 上创建一个用户主体集(如果启用了单点登录 (SSO))。

logout 方法将用户注销WebSphere Application Server并使 HTTP 会话无效。

请阅读“Servlet 安全性方法”主题以了解更多信息。

新的 com.ibm.websphere.security.displayRealm 属性指定 HTTP 基本认证登录窗口是否显示应用程序 web.xml 文件中已定义的领域名:

如果未在 web.xml 文件中定义领域名,那么将出现下列其中一种情况:
  • 如果属性设置为错误的(默认), WebSphere领域名称显示是默认领域。
  • 如果属性设置为真的, 这WebSphere域名显示是 LTPA 认证机制的用户注册表域名或Kerberos域名Kerberos认证机制。

请阅读“安全性定制属性”主题以了解更多信息。