Как применить сигнатуру XML на исходящие сообщения SOAP
-
29-09-2019 - |
Вопрос
Я создал заглушки и привязки, используя CXF Codegen. Все работает нормально, однако сервер по-прежнему отклоняет сообщение из-за проблем безопасности. По сути, у меня есть 3 слоя, чтобы позаботиться о всем, которые требуют сертификатов (которые у меня есть).
- SSL шифрование на трубе
- Подпись сертификата на конкретном элементе данных
- Сертификат XML-подписи на данных полезной нагрузки.
Чтобы спешить супом несколько у меня нет полного контроля на фактической подписи и сертификатах. В основном я должен извлечь правильные данные, отправьте его подписать, и я должен повторно ввести подписанные данные в транзакции.
Сертификаты, которые у меня есть, есть в хранилище сертификатов Windows локальной машины (SSL и некоторая подпись)
Чтение документации. Фреймворк, кажется, в значительной степени зависит от магии конфигурации. К сожалению, большинство ссылок, которые я обнаружил, тратят много времени, подробно объясняя, как генерировать сертификаты, но скорее экономит на том, как мы на самом деле их используем.
Использование CXF Как мне добиться этого?
Как получить доступ к соответствующим крючкам и с каким кодом я могу ввести подпись в сообщение?
Спасибо
Решение
Оказалось, CXF имеет всю возможность генерировать надлежащую подпись с самого начала. Наша проблема заключалась в том, что получение конца подписи не принимает эту стандартную подпись. Нам пришлось создать пользовательскую систему подписи, которая обеспечивает всю придирку и эзотерическую Hocus-Pocus, необходимые для плохой реализации сервера. Префикс пространства имен должен был быть установлен на очень специфическое значение независимо от объявления пространства имен транзакции. Пробел должен был иногда быть обрезанным иногда, а не и т. Д.
Поэтому мы создали перехватчик и вводили его в списке перехватчика OUT, и это было. На самом деле это было немного более сложнее, потому что они настаивали на том, что мыльная транзакция будет подписана с сертификатом, расположенным на USB-ключ конечного пользователя. Наша система централизует все интерфейсы, поэтому нам пришлось немного жить дальше, чтобы сделать это работать, но в итоге все хорошо.
Я хотя цель использования стандарта заключалась в том, чтобы обеспечить стандартное значение для того, чтобы делать вещи, ну ... Некоторые люди, кажется, думают, что они лучшие специалисты, чем эксперты, которые создают стандарт и настаивают на добавлении собственного раскручивания в банку. Кто-то должен сказать им добавлять соленья в Raspberry Jam не делает его лучше.