Sun Java System Application Server 9.1 Update 1 和 9.1 Update 2 发行说明

安全性

本节介绍与 Application Server 及 Web 应用程序安全性和证书相关的已知问题和相应的解决方法。

AIX:由于服务器端证书验证错误,WSS 动态加密密钥测试失败 (6627379)

说明

在 AIX 平台上,动态加密中确定响应的加密密钥失败。在对服务器端证书进行验证的过程中发生该故障。

作为对该故障的响应,将以下错误消息写入服务器的日志文件 server.log


Unable to validate certificate

Error occurred while resolving key information
com.sun.xml.wss.impl.WssSoapFaultException: Certificate validation failed

解决方法

在 Application Server 9.1 Update 1 上安装 Metro 1.1

AIX:@RunAsAccessLocalException:客户机未授权 (6627385)

说明

企业 bean 中的一个方法(其 run-as 或传播的安全标识通过使用 @RunAs 注释定义)尝试调用另一个企业 bean 中的方法。如果在 sun-ejb-jar.xml 部署描述符文件中未定义 run-as 主体,则尝试可能失败并抛出 javax.ejb.AccessLocalException异常。


javax.ejb.AccessLocalException: Client not authorized for this invocation.

解决方法

sun-ejb-jar.xml 部署描述符文件中,在 principal-name 元素中定义为其指定了 run-as 角色的主体名称。

SSL 终止不起作用 (6269102)

说明

SSL 终止不起作用;如果为 SSL 终止配置了负载平衡器(硬件),则 Application Server 会在重定向过程中将协议从 https 更改为 http

解决方法

在硬件负载平衡器与 Application Server 之间添加软件负载平衡器。

SSL 出现套接字连接泄漏 (6492477)

说明

由于 JVM 错误,在 HTTP 侦听器上将 security-enabled 设置为 true 时,某些 JDK 版本会出现泄漏问题。具体而言,产生此错误的步骤如下:

  1. 在 HTTP 侦听器上,将 security-enabled 设置为 true


    <http-listener acceptor-threads="1" address="0.0.0.0" 
    blocking-enabled="false" default-virtual-server="server" enabled="true" 
    family="inet" id=" http-listener-1" port="8080" security-enabled="true" 
    server-name="" xpowered-by="true">
  2. 对在快速查找测试结束时停止域做出注释。

  3. 运行快速查找测试。

  4. 检查套接字使用情况:


    netstat -an | grep 8080

    以下显示的是处于使用状态的内容:


    *.8080               *.*                0      0 49152      0 LISTEN
    *.8080               *.*                0      0 49152      0 BOUND

此问题在 GlassFish 站点 https://glassfish.dev.java.net/issues/show_bug.cgi?id=849 上也有记录。

解决方法

升级到最新的 JDK 版本。