Я создаю свой веб-сервис, используя ws-import, для подключения к службе aspx, которую я защитил с помощью Kerberos в IIS. Я могу для подключения и аутентификации в порядке, когда я просто подключиться к услуге с помощью SOAPConnectionЗаголовок проверки подлинности Kerberos для клиники JAX-WS
final SOAPConnection conn = SOAPConnectionFactory.newInstance().createConnection();
try {
final MessageFactory msgFactory = MessageFactory.newInstance();
final SOAPMessage message = msgFactory.createMessage();
final MimeHeaders headers = message.getMimeHeaders();
if (spnegoToken != null) {
headers.addHeader("SOAPAction", "http://tempuri.org/HelloWorld");
headers.addHeader("Authorization", "Negotiate " + Base64.encode(spnegoToken));
}
message.getSOAPBody().addBodyElement(new QName("http://tempuri.org/", "HelloWorld", "tem"));
final SOAPMessage response = conn.call(
message, "http://server:9994/WebService/SampleService.asmx");
return response.getSOAPBody().getTextContent();
} finally {
conn.close();
}
Однако я не могу добавить заголовок авторизации на JAXWS генерироваться WS таким же образом:
final SampleServiceSoap sss= new SampleService().getSampleServiceSoap();
((BindingProvider) sss).getRequestContext().put(
"Authorization", "Negotiate " + Base64.encode(spnegoToken));
return sss.helloWorld();
Я получаю ошибку 401 как токен, поскольку я не вижу токен, прикрепленный в Wireshark. Может ли кто-нибудь указать мне на подход, который я должен принять? Приветствия, Barry