Configure p2 Repository Managers para conectar-se a repositório(s) HTTPS com certificado(s) de cliente programaticamente
Pergunta
Gostaria de configurar gerenciadores de repositório p2 para conectar-se a repositórios HTTPS (Apache + certificados de cliente).
Existem vários métodos disponíveis para carregar repositórios:
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;
com location
parâmetro posso fornecer URI para o servidor HTTPS.Como posso fornecer caminhos para armazenamentos de chaves/repositórios confiáveis que contêm certificados de cliente e CA?Não gosto de usar armazenamentos de chaves globais para processos Java.
Solução
Encontrei uma solução.p2 usa ECF como camada de comunicação.
Para ativar o suporte SSL:
- instale e inicie o(s) pacote(s):
org.eclipse.ecf.provider.filetransfer.httpclient.ssl
e/ouorg.eclipse.ecf.provider.filetransfer.ssl
crie o objeto SSLSocketFactory com keystore(s) e registre-se como serviço OSGi
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(keymanagers, trustmanagers, null);
Fábrica SSLSocketFactory = sslContext.getSocketFactory();
bundleContext.RegisterService (sslsocketFactory.class.getName (), fábrica, nulo);
Outras dicas
Consulte o capítulo de ajuda "Opções de tempo de execução de armazenamento seguro": 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
Provavelmente você pode definir esse valor de alguma forma programaticamente, dê uma olhada nas fontes.