配置p2存储库管理器以编程方式连接到具有客户端证书的HTTPS存储库(-ies)

时间:2012-05-18 13:01:28

标签: java eclipse osgi p2

我想配置p2存储库管理器以连接到HTTPS存储库(Apache +客户端证书)。

有几种方法可用于加载存储库:

public IMetadataRepository loadRepository(URI location, IProgressMonitor monitor) throws ProvisionException, OperationCanceledException;
public IMetadataRepository loadRepository(URI location, int flags, IProgressMonitor monitor) throws ProvisionException, OperationCanceledException;
public IArtifactRepository loadRepository(URI location, IProgressMonitor monitor) throws ProvisionException;
public IArtifactRepository loadRepository(URI location, int flags, IProgressMonitor monitor) throws ProvisionException;
带有location参数的

我可以为HTTPS服务器提供URI。如何提供包含客户端和CA证书的密钥库/信任库的路径?我不喜欢在Java进程中使用全局密钥库。

2 个答案:

答案 0 :(得分:2)

找到解决方案。 p2使用ECF作为通信层。

激活SSL支持:

  • 安装并启动软件包:org.eclipse.ecf.provider.filetransfer.httpclient.ssl和/或org.eclipse.ecf.provider.filetransfer.ssl
  • 使用密钥库创建SSLSocketFactory对象并注册为OSGi服务

      

    SSLContext sslContext = SSLContext.getInstance(" SSL");

         

    sslContext.init(keymanagers,trustmanagers,null);

         

    SSLSocketFactory factory = sslContext.getSocketFactory();

         

    bundleContext.registerService(SSLSocketFactory.class.getName(),   factory,null);

答案 1 :(得分:0)

请参阅“安全存储运行时选项”帮助章节:http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Freference%2Fref-securestorage-options.htm

......还有http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html

-eclipse.keyring <file path> (Equinox)
    Set to override location of the default secure storage

可能你可以通过某种方式设置这个值,看看来源。