قم بتكوين مديري مستودعات p2 للاتصال بمستودع (-ies) HTTPS باستخدام شهادة (شهادات) العميل برمجيًا
سؤال
أرغب في تكوين مديري مستودعات 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.
المحلول
وجدت الحل.استخدامات 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) ؛
نصائح أخرى
راجع فصل المساعدة "خيارات وقت تشغيل التخزين الآمن": 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
ربما يمكنك تعيين هذه القيمة بطريقة برمجية، وإلقاء نظرة على المصادر.