Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Java System.setProperty和Security.setProperty之间的差异_Java_Sockets_Security_Ssl_Sslsocketfactory - Fatal编程技术网

Java System.setProperty和Security.setProperty之间的差异

Java System.setProperty和Security.setProperty之间的差异,java,sockets,security,ssl,sslsocketfactory,Java,Sockets,Security,Ssl,Sslsocketfactory,在设计用于在定制芯片上运行的java应用程序的代码行下方找到 System.setProperty("ssl.SocketFactory.provider", "some.custom.socketFactory"); 我从internet推断ssl.SocketFactory.provider是要在java.security.security类上设置的属性 如果将ssl.SocketFactory.provider设置为系统属性而不是安全属性会有任何区别,我会感到困惑。我的意思是,系统和安全

在设计用于在定制芯片上运行的java应用程序的代码行下方找到

System.setProperty("ssl.SocketFactory.provider", "some.custom.socketFactory");
我从internet推断ssl.SocketFactory.provider是要在java.security.security类上设置的属性

如果将ssl.SocketFactory.provider设置为系统属性而不是安全属性会有任何区别,我会感到困惑。我的意思是,系统和安全子集或超集是相互的,因此设置ssl.SocketFactory.provider属性与谁无关

附言: 1 java片上应用程序成功地通过服务器身份验证与服务器通信,但当从更新的服务器请求客户端身份验证时,使用已验证的信任和密钥管理器工厂初始化的SSLContext创建的SSLSocketFactory无法在服务器IP和端口上创建套接字。该线程在.createSocketIP,端口处永久阻塞

2我在internet上进行了大量搜索,但无法连接这些类之间的点以及我是否丢失或做错了什么。

Security.getProperty和setProperty方法在安全类专用的properties对象中设置属性

我的意思是系统和安全性是彼此的子集或超集

没有

因此,对谁设置ssl.SocketFactory.provider属性并不重要

这很重要

默认安全属性是从Java安装中的文件加载的;i、 e.$JAVA_HOME/lib/security/JAVA.security,其中$JAVA_HOME表示有效的JAVA HOME。可以通过系统属性中的java.security.properties属性指定的属性文件覆盖这些属性

因此,在系统属性中设置ssl.SocketFactory.provider将不起作用。但是,如果您:

创建安全属性覆盖文件, 将ssl.SocketFactory.provider属性放入其中,然后 将引用覆盖文件的适当java.security.properties添加到系统属性中;e、 使用a-D命令行选项。 那就行了

以上细节是从阅读Java8源代码中获得的。其他版本中的实现可能不同。

Security.getProperty和setProperty方法在安全类专用的properties对象中设置属性

我的意思是系统和安全性是彼此的子集或超集

没有

因此,对谁设置ssl.SocketFactory.provider属性并不重要

这很重要

默认安全属性是从Java安装中的文件加载的;i、 e.$JAVA_HOME/lib/security/JAVA.security,其中$JAVA_HOME表示有效的JAVA HOME。可以通过系统属性中的java.security.properties属性指定的属性文件覆盖这些属性

因此,在系统属性中设置ssl.SocketFactory.provider将不起作用。但是,如果您:

创建安全属性覆盖文件, 将ssl.SocketFactory.provider属性放入其中,然后 将引用覆盖文件的适当java.security.properties添加到系统属性中;e、 使用a-D命令行选项。 那就行了


以上细节是从阅读Java8源代码中获得的。其他版本中的实现可能不同。

文档似乎说要使用安全属性。第一次调用此方法时,将检查安全属性ssl.SocketFactory.provider。所以你可能是对的。但在处理定制硬件时,很难确定。文档似乎确实说要使用安全属性。第一次调用此方法时,将检查安全属性ssl.SocketFactory.provider。所以你可能是对的。但在处理定制硬件时,很难确定。