2016-09-06 5 views
4

EclipseプラグインをHTTPS URLに接続したいが、ユーザーが証明書を受け入れる必要があるため問題がある。もちろん、tutorials for how to do this in plain Javaというカップルがありますが、それはEclipseプラグインの中では難しいかもしれません。Eclipseを使用してネットワークに接続する

Eclipseには、ネットワークプロトコルが異なるサイトに接続するツールが組み込まれているため、たとえば、「Install new Software ...」というアクションがあります。ツーリングには、HTTPSを個別にリストするpreference pageもあります。

Eclipse Helpによれば、KeyStoreは「SSL接続を確立するときに信頼決定[...]に使用される証明書のリポジトリとして」使用されます。しかし、私はそれを使う方法を理解できませんでした。

私の質問は、Eclipseのビルド機能を使用してHTTPSサイトに接続する方法です。

+0

は、Eclipseのプロキシサービスを[ここ](使用例がありますhttp://blog.vogella.com/2009/12/08/eclipse-rcp-proxy-preference/) –

+0

@ greg-449私はすでにそれをチェックしました。悲しいことに、証明書の処理はありません。私はEclipseがいつかやっていなければならないと確信しています。 –

答えて

0

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(); 
     } 
    } 
} 
関連する問題