我想配置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进程中使用全局密钥库。
答案 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
-eclipse.keyring <file path> (Equinox)
Set to override location of the default secure storage
可能你可以通过某种方式设置这个值,看看来源。