Шифрование SOAP-сообщения в Axis 2 - PullRequest
1 голос
/ 15 октября 2008

Мне нужно использовать шифрование (и подпись) для веб-службы (на стороне сервера). Я использую axis2 и успешно добавил модуль rampart (для реализации WS-Security). Но на странице «rampart» (http://ws.apache.org/axis2/modules/rampart/1_2/security-module.html) отсутствуют примеры, и файл примера на самом деле не задокументирован. Итак, мой вопрос: какой самый простой способ добавить шифрование (и подпись)? Что я должен положить в services.xml, я должен написать policy.xml? Что я должен дать разработчику клиента (в дополнение к WSDL)? Если вы можете указать мне хороший учебник, это было бы полезно, спасибо и т.д ...

Ответы [ 3 ]

3 голосов
/ 18 октября 2008

Можно ли будет просто использовать SSL (https)? Это, безусловно, упростит вещи.

1 голос
/ 20 октября 2008

Vinze - Я тоже столкнулся с этой проблемой с rampart, хотя я не пытался раскрыть веб-службу, просто позвонил. (См. этот вопрос ).

Я обнаружил, что все средства обеспечения безопасности веб-служб сбивают с толку, и это не помогает тому, что вал плохо документирован (нет хороших руководств, как вы упоминали).

Возможно, вам удалось записать API WSS4J вместо использования rampart. (Кстати, я думаю, что вал построен на основе WSS4J).

Что касается того, что предоставить разработчику клиента, для него может быть проще всего, если вы поместите информацию о политике в wsdl вместо отдельного policy.xml. Но вам, вероятно, следует запланировать предоставление ему / ей документации о том, как обеспечивается ваша служба, чтобы он / она знали, как ее назвать.

0 голосов
/ 25 ноября 2008

Я нашел много ответов в этой книге: http://agileskills2.org/DWSAA/index.html (глава 9) Поэтому, даже если я не закончил, я постараюсь ответить на свой вопрос:

  • Даже если политика в WSDL, текущая версия Axis 2 (1.4) не смотрит на нее, поэтому необходимо добавить политику и конфигурацию rampart в services.xml
  • Вы должны написать rampart-config.xml для клиента и "задействовать" модуль в ConfigurationContext, используемом в качестве аргумента для конструктора заглушки
  • Для обоих требуется хранилище ключей (например, JKS) и сертификат

Может быть, больше, я буду редактировать этот ответ, когда мне это удастся ...

...