Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RMI注册表筛选器拒绝java 8更新121中的RMI配置类_Java_Security_Rmi - Fatal编程技术网

RMI注册表筛选器拒绝java 8更新121中的RMI配置类

RMI注册表筛选器拒绝java 8更新121中的RMI配置类,java,security,rmi,Java,Security,Rmi,Java 8 update 121添加了用于反序列化的部分过滤器、RMI注册表串行过滤器和RMI DGC Serail过滤器,请参阅 目前,我正在尝试解组一个用于Rmi配置的类,我们已经完成了这个配置。如果没有任何系统属性,筛选器将不允许它,并且使用系统属性-Dsun.rmi.registry.registryFilter=.*它仍然拒绝该类。日志消息为: INFO: ObjectInputFilter REJECTED: class <package_name and class nam

Java 8 update 121添加了用于反序列化的部分过滤器、RMI注册表串行过滤器和RMI DGC Serail过滤器,请参阅

目前,我正在尝试解组一个用于Rmi配置的类,我们已经完成了这个配置。如果没有任何系统属性,筛选器将不允许它,并且使用系统属性
-Dsun.rmi.registry.registryFilter=.*
它仍然拒绝该类。日志消息为:

INFO: ObjectInputFilter REJECTED: class <package_name and class name>,     arraylength: -1, nRefs: 11, depth: 4, bytes: 837, ex: n/a

是否有其他方法可以正确应用此白名单?

我们也在运行RMI服务器。 我用代码而不是命令行解决了这个问题,但这两种方法都应该有效,我猜shell globbing会妨碍你

java.lang.System.setProperty("sun.rmi.registry.registryFilter", "java.**;<our package base>.**")
java.lang.System.setProperty(“sun.rmi.registry.registryFilter”,“java.*.*;*”)
默认值(如果未指定筛选器属性)位于RMIRisteryImpl的源中: 这只允许在RMI中注册9个基本Java类+原语的子类。但是注册对象后面的整个可序列化对象图将使用此过滤器进行检查。数组限制为10000,最大树深度为5


如果尝试注册筛选器而不命名类白名单(如“maxdepth=10000000”),则仍将应用默认的类白名单。

为避免此错误,请在setDomainEnv.sh中添加以下参数

-Dweblogic.oif.serialFilterMode=combine
-Dweblogic.oif.serialFilterScope=weblogic
-Dweblogic.oif.serialFilter=maxDepth=10000

这将覆盖weblogic.oif.code中默认定义为100的maxdepth,我想您可能是shell通配符全球化的受害者。您是否尝试过
-Dsun.rmi.registry.registryFilter=“.*”
?还没有。我会试试的,运气不好。还是一样的错误。
-Dweblogic.oif.serialFilterMode=combine
-Dweblogic.oif.serialFilterScope=weblogic
-Dweblogic.oif.serialFilter=maxDepth=10000