gpt4 book ai didi

java - 谁能告诉我为什么在使用 SSL 时在 Java 中出现错误?

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:23 25 4
gpt4 key购买 nike

我一直在尝试在 Cpp 服务器和 Java applet 客户端之间建立连接,但是当我运行 applet 时,我在浏览器中遇到了这个错误。我在信任存储文件中有证书(如果我不需要它请告诉我)。任何帮助将不胜感激。

access denied ("java.util.propertypermission" "javax.net.ssl.truststore" "write")

import java.awt.*;
import java.applet.*;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;
import javax.swing.*;

public class no2 extends Applet {

int width, height;

public void init() {

System.setProperty("javax.net.ssl.trustStore", "keystore.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

String trustStore = System.getProperty("javax.net.ssl.trustStore");
if (trustStore == null) {
System.out.println("javax.net.ssl.trustStore is not defined");
} else {
System.out.println("javax.net.ssl.trustStore = " + trustStore);
}

try {

PrintWriter toServer = null;
BufferedReader fromServer = null;

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("192.168.0.10", 12120);

String[] newProtocols = {"TLSv1"};
sslsocket.setEnabledProtocols(newProtocols);

toServer = new PrintWriter(sslsocket.getOutputStream(), true);

toServer.println("Data1\n");
toServer.println("Data2\n");

InputStreamReader isr = new InputStreamReader(sslsocket.getInputStream());
fromServer = new BufferedReader(isr, 1);

} catch (Exception exception) {

exception.printStackTrace();
}
}
}

最佳答案

您不能在 Applet 中设置系统属性。您也无法访问本地文件 (keystore.jks) 系统(除非您请求特定权限)。

您可以将特殊参数传递给 JVM,如 documentation 中所述像这样:

<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
<PARAM name="java_arguments" value="-Djavax.net.ssl.trustStore=keystore.jks">
</APPLET>

但同样,请注意访问本地文件所需的特殊权限。

关于java - 谁能告诉我为什么在使用 SSL 时在 Java 中出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11376323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com