2016-04-12 4 views
0

Существует следующий способ настройки заголовка аутентификации в API Джерси.Конфигурирование заголовка аутентификации на стороне клиента API-интерфейса Джерси

//Universal builder having different credentials for different schemes 

HttpAuthenticationFeature feature = HttpAuthenticationFeature.universalBuilder() 

.credentialsForBasic("username1", "password1") 

.credentials("username2", "password2").build(); 



final Client client = ClientBuilder.newClient(); 

client.register(feature); 

Но не в состоянии выяснить, как передать дополнительный параметр в заголовок аутентификации, например. IntegatorKey, SendBehalfOf. это особый вызов службы REST.

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

  1. Имя пользователя

  2. Пароль

  3. IntegatorKey

  4. SendBehalfOf

Как я должен достичь этого с помощью API-Джерси?

+0

Как вам необходимо отправить эти дополнительные параметры? –

+0

Недостаточно информации. Пожалуйста, сделайте еще несколько исследований о том, что требуется API, и обновите сообщение, чтобы подробно отразить эти требования с надлежащей терминологией. Ваше сообщение не имеет большого смысла в его текущем состоянии. –

ответ

0

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


Посмотрев на поверхностной информации, предоставленной вами, я думаю, вы пытаетесь получить доступ к DocuSign REST API. Если да, то вы можете создать ClientRequestFilter, следующим образом:

public class DocuSignAuthenticator implements ClientRequestFilter { 

    private String user; 
    private String password; 
    private String integatorKey; 
    private String sendBehalfOf; 

    public DocuSignAuthenticator(String username, String password, 
           String integatorKey, String sendBehalfOf) { 
     this.username = username; 
     this.password = password; 
     this.integatorKey = integatorKey; 
     this.sendBehalfOf = sendBehalfOf; 
    } 

    @Override 
    public void filter(ClientRequestContext requestContext) throws IOException { 
     requestContext.getHeaders().add(
      "X-DocuSign-Authentication", getAuthenticationHeader()); 
    } 

    private String getAuthenticationHeader() { 

     StringBuilder builder = new StringBuilder(); 
     builder.append("<DocuSignCredentials>"); 

     builder.append("<SendOnBehalfOf>"); 
     builder.append(sendBehalfOf); 
     builder.append("</SendOnBehalfOf>"); 

     builder.append("<Username>"); 
     builder.append(username); 
     builder.append("</Username>"); 

     builder.append("<Password>"); 
     builder.append(password); 
     builder.append("</Password>"); 

     builder.append("<IntegratorKey>"); 
     builder.append(integatorKey); 
     builder.append("</IntegratorKey>"); 

     builder.append("</DocuSignCredentials>"); 
     return builder.toString(); 
    } 
} 

и зарегистрировать его при создании Client экземпляра:

Client client = ClientBuilder.newClient().register(
     new DocuSignAuthenticator(username, password, integatorKey, sendBehalfOf)); 
+0

Я попробую ваш подход –

+0

@Damajikalunge Пожалуйста, подумайте о предоставлении более подробной информации в своем вопросе. –

+0

Какая политика проверки подлинности будет следующей: ОСНОВНАЯ: ОСНОВНЫЕ НЕПРЕРЫВНЫЕ: UNIVERSAL: –

Смежные вопросы