2014-12-05 5 views
0

Я пытаюсь вызвать веб-сервиса с помощью имени пользователя/пароль, используя ниже клиента, но я не вижу имя пользователя/пароль, которые установлены в заголовкахНевозможно передать имя пользователя & пароль в JAXWS

Клиентский код

AttachmentWSImplService service = new AttachmentWSImplService(); 
     AttachmentWS aws = service.getAttachmentWS(); 
     BindingProvider bindingProvider = (BindingProvider) aws; 
     SOAPBinding sopadBinding = (SOAPBinding) bindingProvider.getBinding(); 
     sopadBinding.setMTOMEnabled(true); 

     bindingProvider.getRequestContext().put(bindingProvider.USERNAME_PROPERTY,"p3xferdt"); 
     bindingProvider.getRequestContext().put(bindingProvider.PASSWORD_PROPERTY,"92mnGg1Cb14D9hVhG1W5fZra4UI="); 

Серверный код

SOAPMessageContext ctx = (SOAPMessageContext) wsCtx 
      .getMessageContext(); 
    java.util.Map<java.lang.String, java.util.List<java.lang.String>> headers = (Map<String, List<String>>) ctx 
      .get(MessageContext.HTTP_REQUEST_HEADERS); 
    if (headers.keySet() != null && !headers.keySet().isEmpty()) { 
     Iterator<String> keys = headers.keySet().iterator(); 
     while (keys.hasNext()) { 
      String key = (String) keys.next(); 
      logger.info("HeaderKey->" + key); 
      logger.info("Header values->" + headers.get(key)); 
      // getting Basic Authentication 
      String tmpusername = getUsernameFromAuthentication(key, 
        headers.get(key).toString()); 

ответ

0

код выглядит хорошо для меня, должно работать нормально.

В любом случае попытайтесь получить доступ к заголовку запроса на

Headers headers = ex.getRequestHeaders(); 
List<String> ulist = headers.get(BindingProvider.USERNAME_PROPERTY); 
List<String> plist = headers.get(BindingProvider.PASSWORD_PROPERTY); 

PS: Помните USERNAME_PROPERTY статична строку из интерфейса BindingProvider, можно получить в статическом пути. (Стандарты кодирования:))