У меня есть веб-сервис, разработанный с помощью JAX-WS. Я защитил веб-сервис с помощью BASIC-аутентификации, настроенной в Tomcat.
Когда я пытаюсь получить доступ к веб-службе с помощью клиента Java, мне сначала нужно создать порт, а затем указать учетные данные следующим образом:
CustomerServiceClient customerServiceClient = new CustomerServiceBottomUpService(); //1
CustomerService customer = customerServiceClient.getCustomerServicePort(); //2
Map<String, Object> context = ((BindingProvider) customer).getRequestContext(); //3
context.put(BindingProvider.USERNAME_PROPERTY, "kermit"); //4
context.put(BindingProvider.PASSWORD_PROPERTY, "thefrog"); //5
У меня проблема в том, что после строки 1 я получаю сообщение об ошибке авторизации (HTTP 401), поскольку я, очевидно, еще не предоставил серверу учетные данные.
Я создаю клиентские артефакты из WSDL-сервера, поэтому возникает проблема с аутентификацией при создании службы, и я не хочу, чтобы мои клиенты хранили WSDL локально, поскольку это просто раздражает их. Как я могу обойти эту проблему?