2

我想配置 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参数我可以提供 URI 到 HTTPS 服务器。如何提供包含客户端和 CA 证书的密钥库/信任库的路径?我不喜欢对 Java 进程使用全局密钥库。

4

2 回答 2

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 工厂 = sslContext.getSocketFactory();

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

于 2012-05-23T12:38:13.337 回答
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

可能您可以以某种方式以编程方式设置此值,请查看源代码。

于 2012-05-22T15:35:54.660 回答