Configure los administradores de repositorio p2 para conectarse a los repositorios HTTPS con certificados de cliente mediante programación
Pregunta
Me gustaría configurar los administradores de repositorios p2 para conectarse a repositorios HTTPS (Apache + certificados de cliente).
Hay varios métodos disponibles para cargar repositorios:
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;
con location
parámetro Puedo proporcionar URI al servidor HTTPS.¿Cómo puedo proporcionar rutas a almacenes de claves/almacenes de confianza que contengan certificados de cliente y CA?No me gusta usar almacenes de claves globales para el proceso Java.
Solución
Encontré una solución.usos p2 FEC como capa de comunicación.
Para activar el soporte SSL:
- instalar e iniciar paquete(s):
org.eclipse.ecf.provider.filetransfer.httpclient.ssl
y/oorg.eclipse.ecf.provider.filetransfer.ssl
cree un objeto SSLSocketFactory con almacén de claves y regístrese como servicio OSGi
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(administradores de claves, administradores de confianza, nulo);
SSLSocketFactory fábrica = sslContext.getSocketFactory();
bundlecontext.Registerservice (sslsocketfactory.class.getName (), fábrica, nulo);
Otros consejos
Consulte el capítulo de ayuda "Opciones de tiempo de ejecución de almacenamiento 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
Probablemente pueda establecer este valor de alguna manera mediante programación, eche un vistazo a las fuentes.