gpt4 book ai didi

java - 使用 Eclipse 连接到网络

转载 作者:搜寻专家 更新时间:2023-11-01 03:47:49 24 4
gpt4 key购买 nike

我想将我的 Eclipse 插件连接到 HTTPS URL,但遇到了问题,因为用户需要接受证书。当然有几个tutorials for how to do this in plain Java ,但这可能很难在 Eclipse 插件中完成,我想我会重新发明轮子。

因为 Eclipse 有一些内置工具可以连接到具有不同网络协议(protocol)的站点。一个示例是“安装新软件...”操作。该工具甚至有一个 preference page单独列出 HTTPS。

根据Eclipse Help ,KeyStore 被用作“在建立 SSL 连接时用于信任决策的证书的存储库”。但我不知道如何使用它。

所以我的问题是:如何使用 Eclipse 的内置工具连接到我的 HTTPS 站点?

最佳答案

基于 this answer here我构建了自己的插件,它只在其 EarlyStartup 中加载我需要的一个证书(幸运的是我):

public class EarlyStartup implements IStartup {

private static final String ALIAS = "ACME";

@Override
public void earlyStartup() {
final char[] passphrase = "changeit".toCharArray();
final char separator = File.separatorChar;
final File dir = new File(System.getProperty("java.home") + separator + "lib" + separator + "security");
final File file = new File(dir, "cacerts");

try (InputStream certIn = getClass().getResourceAsStream("acme.org.crt");
final InputStream localCertIn = new FileInputStream(file);) {

final KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(localCertIn, passphrase);
if (keystore.containsAlias(ALIAS)) {
return;
}

final CertificateFactory cf = CertificateFactory.getInstance("X.509");
final Certificate cert = cf.generateCertificate(certIn);
keystore.setCertificateEntry(ALIAS, cert);

try (OutputStream out = new FileOutputStream(file)) {
keystore.store(out, passphrase);
}
} catch (final Exception e) {
e.printStackTrace();
}
}
}

关于java - 使用 Eclipse 连接到网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39344041/

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