Я работаю на программное обеспечение, которое регистрирует WS через ниже вызова:Как зарегистрировать веб-сервиса через OSGi (karaf) API с пользовательскими TrustManager
initiatingBundle.getBundleContext()
.registerService(
interfaces,
serviceObject,
this.convertMapToDictionary(
initiatingBundle.getBundleContext(),
serviceAttributes
)
);
org.osgi.framework.BundleContext
ServiceRegistration<?> registerService(java.lang.String[] clazzes,
java.lang.Object service,
java.util.Dictionary<java.lang.String,?> properties)
ли есть ли способ (пример с атрибутом свойств) создать веб-сервис с настраиваемым TrustManager, как показано ниже?
TrustManager trustManager = new X509TrustManager() {
@Override public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
System.out.println("=== interception point at checkClientTrusted ===");
System.out.println(x509Certificates[0].getSubjectDN().getName());
System.out.println("================================================");
throw new CertificateException("interception point at checkClientTrusted");
}
@Override public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
System.out.println("checkServerTrusted");
}
@Override public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
};
Спасибо, это было очень полезно, но вопрос был о пользовательском trustmanager. Я хочу обрабатывать шаг проверки сертификата клиента во время самообслуживания TLS ... например: не только на эмитенте, но и на основе других атрибутов. Возможно ли это с OSGi API? –
В этом случае вам нужно будет изменить файл jetty.xml, чтобы использовать свой пользовательский менеджер. Обязательно включите ssl через конфигурацию и jetty.xml. Из-за этого вы можете изменить конфигурацию по умолчанию. Подробности также можно найти в документации веб-сайта или образцах и тестах интеграции. –
Как я вижу, я могу установить атрибуты в файле jetty.xml, которые связаны с организацией.пакет eclipse.jetty. Unfortunatelly org.eclipse.jetty.ssl.SSLContext и SSLContextFactory не имеют атрибута для trustManager (только статический член, который перезаписывается, если дано какое-либо доверительное хранилище, и оно настроено в OSGi). По этой ссылке [http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#registerService%28java.lang.String [],% 20java.lang.Object,% 20java. util.Dictionary% 29] Мне интересно узнать ключи, значения. Может быть, есть конфиг для настраиваемого TrustManager ... –