Шифрование SOAP-сообщения в Axis 2

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
2 402
3

Ответы 3

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

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

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

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

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

Да, поискав множество решений, я понял, что политика должна быть в файле WSDL; но я генерирую его с помощью задачи Axis Java2WSDL ant, и я не знаю, как это сделать ... может быть, мне придется самому написать WSDL! Написание службы с правильным API вместо POJO - это тоже решение, которое я собираюсь использовать.

Vinze 20.10.2008 13:31

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

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

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

Другие вопросы по теме