Nano Hash - криптовалюты, майнинг, программирование

Свойство SOAP WS-Addressing с Wss4jSecurityInterceptor с Java

Привет, я создаю код для использования службы SOAP,

Для заголовка аутентификации я использовал Wss4jSecurityInterceptor для установки информации заголовка.

Я получаю ответ об ошибке, как показано ниже

 Exception in thread "main" org.springframework.ws.soap.client.SoapFaultClientException: Required element {http://www.w3.org/2005/08/addressing}Action is missing

Мой код конфигурации, как показано ниже

@Configuration
public class SoapClientConfig {

    @Bean
    public Jaxb2Marshaller marshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setContextPath("com.xyz.client");
        marshaller.setCheckForXmlRootElement(false);
        return marshaller;
    }

    @Bean
    public MyClient myClient(Jaxb2Marshaller marshaller) throws Exception {
        MyClient client = new MyClient();
        client.setDefaultUri("https://localhost:8080/ws/service");
        client.setMarshaller(marshaller);
        client.setUnmarshaller(marshaller);

        ClientInterceptor[] interceptors = new ClientInterceptor[] {securityInterceptor()};

        client.setInterceptors(interceptors);
        return client;
    }

    @Bean
    public Wss4jSecurityInterceptor securityInterceptor() {
        Wss4jSecurityInterceptor wss4jSecurityInterceptor = new Wss4jSecurityInterceptor();
        wss4jSecurityInterceptor.setSecurementActions("UsernameToken");
        wss4jSecurityInterceptor.setSecurementMustUnderstand(true);
        wss4jSecurityInterceptor.setSecurementPasswordType("PasswordText");
        wss4jSecurityInterceptor.setSecurementUsername("XXXXXXXXXXX");
        wss4jSecurityInterceptor.setSecurementPassword("XXXXXXXX");
        return wss4jSecurityInterceptor;
    }
}

Может ли кто-нибудь предложить мне, что мне не хватает?

Если я попробую из SOAPUI, он будет работать нормально. Если я устанавливаю WS-Addressing=false из SOAPUI, я также получаю ту же ошибку, поэтому возникает проблема с установленным свойством WS-Addressing с приведенным выше кодом. Как я могу?


  • Я получил решение вышеуказанной проблемы здесь... Веб-служба мыла продолжает разрывать соединение"> stackoverflow.com/questions/43974784/ 25.05.2017

Ответы:


1

Используете ли вы WebServiceTemplate для отправки запроса? Если да, вы можете сделать что-то вроде:

ActionCallback callback = new ActionCallback(
                    new URI("action uri"));

Здесь вы должны указать фактическое место действия uri вместо «URI действия». Затем сделайте

getWebServiceTemplate().marshalSendAndReceive(request, callback)
28.03.2017
  • Мой заголовок SOAP уже содержит информацию об этом действии. Также адрес собственности также там, тогда также я получаю решение проблемы 29.03.2017
  • Итак, не могли бы вы опубликовать весь код, связанный с построением и отправкой запроса? 29.03.2017
  • Проблема странная в том, что она зависит от определения последовательности действий. Если я определяю действие перед элементом безопасности, он показывает ошибку. Если я определяю действие после безопасности, оно работает. 01.04.2017
  • Я не нахожу способа установить заголовок wsa:To на клиенте, когда этот URL-адрес отличается от конечной точки. 17.02.2021

  • 2

    Долгое время до того, как вы работали над заполнением заголовка SOAP динамическим значением, для этого вам нужно работать над созданием узлов xml с использованием объекта обратного вызова...WebServiceMessageCallback

    http://docs.spring.io/spring-ws/site/reference/html/client.html#d5e1848

    В моем сценарии мне нужно построить узел, используя QName (Java) Node by Node.

    29.03.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..