Как применить сигнатуру XML на исходящие сообщения SOAP

StackOverflow https://stackoverflow.com/questions/3504296

Вопрос

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

  1. SSL шифрование на трубе
  2. Подпись сертификата на конкретном элементе данных
  3. Сертификат XML-подписи на данных полезной нагрузки.

Чтобы спешить супом несколько у меня нет полного контроля на фактической подписи и сертификатах. В основном я должен извлечь правильные данные, отправьте его подписать, и я должен повторно ввести подписанные данные в транзакции.

Сертификаты, которые у меня есть, есть в хранилище сертификатов Windows локальной машины (SSL и некоторая подпись)

Чтение документации. Фреймворк, кажется, в значительной степени зависит от магии конфигурации. К сожалению, большинство ссылок, которые я обнаружил, тратят много времени, подробно объясняя, как генерировать сертификаты, но скорее экономит на том, как мы на самом деле их используем.

Использование CXF Как мне добиться этого?

Как получить доступ к соответствующим крючкам и с каким кодом я могу ввести подпись в сообщение?

Спасибо

Это было полезно?

Решение

Оказалось, CXF имеет всю возможность генерировать надлежащую подпись с самого начала. Наша проблема заключалась в том, что получение конца подписи не принимает эту стандартную подпись. Нам пришлось создать пользовательскую систему подписи, которая обеспечивает всю придирку и эзотерическую Hocus-Pocus, необходимые для плохой реализации сервера. Префикс пространства имен должен был быть установлен на очень специфическое значение независимо от объявления пространства имен транзакции. Пробел должен был иногда быть обрезанным иногда, а не и т. Д.

Поэтому мы создали перехватчик и вводили его в списке перехватчика OUT, и это было. На самом деле это было немного более сложнее, потому что они настаивали на том, что мыльная транзакция будет подписана с сертификатом, расположенным на USB-ключ конечного пользователя. Наша система централизует все интерфейсы, поэтому нам пришлось немного жить дальше, чтобы сделать это работать, но в итоге все хорошо.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top