Spring ws Unauthorized [401]

Я пытаюсь потреблять мыльную службу. Сервис не имеет сертификата, но получает в качестве свойства запроса имя пользователя и пароль. но я получаю следующую ошибку:

org.springframework.ws.client.WebServiceTransportException: Unauthorized [401]

Я пробовал несколькими способами передать логин и пароль. С помощью мыла я смог оформить заявку. В soapui я передаю имя пользователя и пароль через свойства запроса.

 @Bean
    Jaxb2Marshaller jaxb2Marshaller() {
        Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
        jaxb2Marshaller.setPackagesToScan("ce.gov.s2gpr.compras.licita.business.model.service.bean");
        return jaxb2Marshaller;
    }


    @Bean
    public WebServiceTemplate webServiceTemplate() {
        WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
        webServiceTemplate.setMarshaller(jaxb2Marshaller());
        webServiceTemplate.setUnmarshaller(jaxb2Marshaller());
        webServiceTemplate.setDefaultUri(defaultUri);

        HttpsUrlConnectionMessageSender sender = new HttpsUrlConnectionMessageSender();
        sender.setTrustManagers(new TrustManager[] {
                new X509TrustManager() {
                    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                        return null;
                    }
                    public void checkClientTrusted(
                            java.security.cert.X509Certificate[] certs, String authType) {
                    }
                    public void checkServerTrusted(
                            java.security.cert.X509Certificate[] certs, String authType) {
                    }
                }
        });

        webServiceTemplate.setMessageSenders(new WebServiceMessageSender[]{sender, httpComponentsMessageSender()});

        return webServiceTemplate;
    }


    @Bean
    public HttpComponentsMessageSender httpComponentsMessageSender() {
        HttpComponentsMessageSender httpComponentsMessageSender = new HttpComponentsMessageSender();
        httpComponentsMessageSender.setConnectionTimeout(timeout);
        httpComponentsMessageSender.setReadTimeout(DEFAULT_READ_TIMEOUT_MILLISECONDS);
        httpComponentsMessageSender.setReadTimeout(timeout);
        httpComponentsMessageSender.setCredentials(new UsernamePasswordCredentials(userName, userPassword));

        return httpComponentsMessageSender;
    }

Я пытался несколькими способами передать имя пользователя и пароль, но получил ту же ошибку.

@SuppressWarnings("unchecked")
    public AtualizacaoItensGruposResponse testeSoap(PgeTO dto) {

    ObjectFactory factory = new ObjectFactory();

    AtualizacaoItensGrupos itens = factory.createAtualizacaoItensGrupos();

    itens.setArg0(dto);
    JAXBElement<AtualizacaoItensGrupos> request =  factory.createAtualizacaoItensGrupos(itens);

    try {

        WebServiceMessageCallback wsCallback = message -> {
            TransportContext context = TransportContextHolder.getTransportContext();
            WebServiceConnection connection = context.getConnection();
            HttpUrlConnection conn = (HttpUrlConnection) connection;

            conn.getConnection().setRequestProperty("Username", "");
            conn.getConnection().setRequestProperty("Password", "");
            conn.getConnection().setRequestProperty("username", "");
            conn.getConnection().setRequestProperty("password", "");

            conn.getConnection().addRequestProperty("Username", "");
            conn.getConnection().addRequestProperty("Password", "");
            conn.getConnection().addRequestProperty("username", "");
            conn.getConnection().addRequestProperty("password", "");
            conn.getConnection().addRequestProperty("s2gpr.integracao.cotacao.item_licitacao.webservice.user", "");
            conn.getConnection().addRequestProperty("s2gpr.integracao.cotacao.item_licitacao.webservice.password", "");
        };

        webServiceTemplate.marshalSendAndReceive(request, wsCallback);
        return null;
    } catch (Exception e) {
        log.error(e.getMessage());
        throw new ClientLicitaWebException("Ocorreu um erro ao enviar as informações para o sistema LicitaWeb");
    }

}
"но получает как свойство запроса имя пользователя и пароль" - что именно это означает? Заголовки HTTP что ли?
lexicore 21.04.2018 11:41

Возможный дубликат WebServiceTransportException: неавторизованный [401] в Spring-WS

lexicore 21.04.2018 11:42

Это не двуличие, необходимо передать учетные данные. Мне нужно передать заявку.

Junior Bezerra 23.04.2018 13:58

Узнал, как это решить. использовано: public void doWithMessage (сообщение WebServiceMessage) выдает исключение IOException, сообщение TransformerException {SaajSoapMessage soapMessage2 = (SaajSoapMessage); MimeHeaders mimeHeader = soapMessage2.getSaajMessage (). GetMimeHeaders (); mimeHeader.setHeader («Авторизация», getB64Auth (имя пользователя, пароль пользователя)); }

Junior Bezerra 23.04.2018 13:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
868
0

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