Я создаю веб-сервис Spring Boot SOAP, который содержит элементы SAML в ответе тела SOAP конверта, в качестве части которого я использую библиотеки OpenSAML v3. Однако библиотеки используют свои собственные маршаллеры / unmarshallers, а Spring WS использует эквивалент JAXB. Я создал аннотированные классы JAXB для охвата доменной модели различных типов объектов SAML.
В настоящий момент процесс выглядит примерно так, возможно, пропустил один или два шага, но вы получите картинку
soap request -> unmarshal to jaxb class -> marshall to org.w3c.dom.Element
-> unmarshall to opensaml v3 эквивалент
И тогда ответ будет обратным
soap ответ <- маршал jaxb класс к xml <- unmarshall <code>org.w3c.dom.Element к JAXB класс <- маршалл opensaml v3 объект к <code>org.w3c.dom.Element
Очевидно, что это удваивает количество преобразований, есть ли лучший способ сделать это? Учитывая, что я не могу изменить классы OpenSAML v3 (без реализации собственных версий из API).