最近的 14.04 更新破坏了一个 Java 应用程序

最近的 14.04 更新破坏了一个 Java 应用程序

出现故障的应用程序是较旧的 Adaptec 存储管理器 (v4.30),它多年来一直正常运行,直到最近的 Ubuntu 14.04 更新。

我能说的最好的情况是,问题发生在openjdk-7-jdk更新时,但我不确定哪个 Java 版本可以与 Adaptec Storage Manager 正确配合使用。很长一段时间以来,所有 Java 都可以在 Ubuntu 上使用此版本。

启动应用程序时出现的错误是:

java objectinputstream filter check rejected

所讨论的类别是java.net.inetaddress

问题的本质是,此应用程序在允许访问主机控制器管理功能之前尝试对用户进行身份验证。我记得,访客权限对此没有问题,但身份验证模块本身似乎无法执行。

我知道java.security各种 Java 版本的文件以及策略编辑器,但我不确定什么可以纠正这个问题。

有帮助的是确切地知道openjdk在这一切发生之前哪个版本正在运行,但我不知道从哪里获得这些信息。

答案1

我意识到这是一个非常老的帖子,但是既然我有答案,我认为跟进会很有帮助。

对于任何 OpenJDK 或 Oracle Java 版本,按如下所示更新 java.security 将纠正在 Linux 下使用 Adaptec Storage Manager 处理 2410SA raid 控制器时出现的问题之一。

改变

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, EC keySize < 224

删除RC4

jdk.tls.disabledAlgorithms=SSLv3, MD5withRSA, DH keySize < 768, EC keySize < 224

java.security 所需的其他重要更改包括:

jdk.serialFilter=*
sun.rmi.registry.registryFilter=*
sun.rmi.transport.dgcFilter=\
java.rmi.server.ObjID;\
java.rmi.server.UID;\
java.rmi.dgc.VMID;\
java.rmi.dgc.Lease;\
maxdepth=5;maxarray=10000

我使用 Ubuntu 14.04.5 和 16.04.3 测试了这些更改。

附注:OpenJDK7u151-2.6.11-0ubuntu1.14.04.1不需要7u151-2.6.11-1+deb7u1 进行更改jdk.tls.disabledAlgorithms

由于我使用的 Adaptec Storage Manager 版本较旧(asm_linux_v4.30-16038.rpm),并且该版本不再受支持,因此除了 arcconf 命令行实用程序(无论哪种方式都可以正常工作)之外,更改 java.security 文件是我唯一的选择。

也许有一天这篇文章能够帮助到某些人。

相关内容