2012-08-10 6 views
0

Я пытаюсь написать свой первый клиент SOA, и у меня возникли трудности с частью «2-way SSL» .SOA cllient ошибка установления связи

Наш сервер работает под Weblogic, но мое приложение является простым приложением Java Console - оно не запускается ни в одном контейнере.

Сервер использует и требует сертификаты. Мы используем доверенные сертификаты от Godaddy.com, и у нас также есть внутренние сертификаты.

Наш системный администратор дал мне сертификаты сервера, которые я добавил в свой JRE-файл «cacerts», используя keytool. Мне сказали, что я должен использовать Spring-WS, так как это облегчит мою жизнь, но у меня возникают проблемы с ее работой, так как существует немало вариаций, которые Chap. 7 упоминает, и я не уверен, какой из них я должен использовать. Он также создал файл .jks для меня лично для моего разрешения.

Я предпочел бы не использовать Spring вообще, для этого простого приложения (метод SOA является простым «Добавить комментарий» метод без каких-либо существенных данных возврата.

Я работаю с MyEclipse 9.1 и пытаюсь использовать Maven4MyEclipse а

Мой вопрос:.

Учитывая, что мои сертификаты аутентификации будут доступны через JRE cacerts файл (если я понимаю это правильно), главное, что нужно сделать, чтобы быть в состоянии представить мой файл .jks во время установления связи SSL.

Могу ли я сделать это без весны? Если да, есть ли способ, которым я могу просто установить свойство System с моим .jks-файлом, чтобы он автоматически обрабатывался? Или мне действительно нужно использовать Spring для обработки части авторизации?

Если последний, откуда я узнаю , который Весна безопасности перехватчика типа использовать? XwsSecurityInterceptor или Wss4jSecurityInterceptor?

Или другой вопрос, который мне только что пришел. Может ли файл .jks также быть добавлен в файл cacerts и авторизовать его автоматически?

Спасибо,

Митч

P.S. Верьте или нет, по-видимому, нет существующего Java-клиента в моей организации, чтобы просто посмотреть на шаблон.

ответ

2

Для двухфакторной аутентификации образом, я всегда использовал followin при запуске клиентского приложения:

java -Djavax.net.ssl.keyStore=myClientKeystore -Djavax.net.ssl.keyStorePassword=123456 -Djavax.net.ssl.trustStore=myTrustStore -Djavax.net.ssl.trustStorePassword=123456 -Djavax.net.debug=ssl 

То есть, мои клиенты частный сертификат находится в «myClientKeystore», а затем сервер публичный сертификат является в "myTrustStore". Javax.net.debug = ssl упростит вашу жизнь, так как он выводит какую-то приятную информацию об отладке, если вы не можете заставить сеанс SSL работать.

Это для части SSL. Тогда я думаю, что вы смешиваете SOA с веб-сервисами и SOAP. SOA обычно означает сервис-ориентированную архитектуру и очень высокий уровень. Я думаю, вы говорите о реализации SOAP.

Если веб-сервис более чем тривиален, да, инфраструктура сделает вашу жизнь проще.Помимо Spring-ws (что мне также нравится), вы можете использовать Google для CXF и Axis2, и вы найдете множество примеров того, как писать SOAP-клиент. Но, конечно, вы можете написать вызов веб-службы довольно грубым, если вы можете создать оболочку SOAP вручную (использовать SoapUI для создания тестовых конвертов - это хороший старт ..).

Затем посмотрите: this page, в нем приведен пример того, как сделать SOAP-вызов через HTTP без каких-либо фреймворков. Конечно, поскольку вы используете SSL, вы должны ссылаться на адрес «https: //».

+0

Petter, Спасибо за ответ. Я смог заставить свою программу работать, в основном, выполняя то, что вы предлагали, но во время выполнения через System.setProperty для правильных значений. – mitchmcc

+0

Ницца, как установить свойства - это всего лишь вопрос того, что наиболее удобно. –

Смежные вопросы