配置P2存储库管理器以编程方式与客户端证书连接到HTTPS存储库(SIES)
题
我想配置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进程使用全局密钥商店。
解决方案
找到了一个解决方案。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,Trusmagers,null);
sslsocketfactory factory= sslcontext.getsocketfactory();
bundlecontext.registerservice(sslsocketfactory.class.getname(), 工厂,null);
其他提示
请参阅“安全存储运行时选项”帮助章节: 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
.
可能你可以以某种方式以某种方式设置这个值,看看来源。
不隶属于 StackOverflow