出现故障的应用程序是较旧的 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 文件是我唯一的选择。
也许有一天这篇文章能够帮助到某些人。