java – 使用Eclipse连接到网络
发布时间:2020-12-15 02:16:36 所属栏目:Java 来源:网络整理
导读:我想将我的 Eclipse插件连接到HTTPS URL,但是有问题,因为用户需要接受证书.当然有一些 tutorials for how to do this in plain Java,但在Eclipse插件中可能很难做到,我想我会以这种方式重新发明轮子. 因为Eclipse有一些内置工具可以连接到具有不同网络协议的
我想将我的
Eclipse插件连接到HTTPS URL,但是有问题,因为用户需要接受证书.当然有一些
tutorials for how to do this in plain Java,但在Eclipse插件中可能很难做到,我想我会以这种方式重新发明轮子.
因为Eclipse有一些内置工具可以连接到具有不同网络协议的站点.一个例子是“安装新软件……”操作.该工具甚至还有一个单独列出HTTPS的preference page. 根据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(); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |