2014-05-26 3 views
0

Я использую код аутентификации NTLM на этом URL-адресе; http://hc.apache.org/httpcomponents-client-4.3.x/ntlm.htmlКод Ntlm работает только на устройствах Samsung

Но он аутентифицируется только на устройствах Samsung. Когда я пытаюсь выполнить Nexus 4, я получил сообщение об ошибке «Отказано из-за недействительных учетных данных» с сервера. Даже в тех же версиях Android.

Возможно ли это?

Я получаю объект httpclient как это;

Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create() 
      .register(AuthSchemes.NTLM, new JCIFSNTLMSchemeFactory()) 
      .register(AuthSchemes.BASIC, new BasicSchemeFactoryHC4()) 
      .register(AuthSchemes.DIGEST, new DigestSchemeFactoryHC4()) 
      .build(); 

CredentialsProvider cp = new BasicCredentialsProvider(); 
cp.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new NTCredentials(NTLM_USERNAME, NTLM_PASSWORD, "", "")); 
CloseableHttpClient httpClient = HttpClients.custom() 
      .setDefaultAuthSchemeRegistry(authSchemeRegistry) 
      .setDefaultCredentialsProvider(cp) 
      .build(); 
+0

Поделиться частью источника, где вы делаете что-л. «HttpClient.getAuthSchemes(). Register (« ntlm », новый NTLMSchemeFactory()); и т. д. – Dima

+0

Я отредактировал мой пост – ferpar1988

ответ

0

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


public class JsonRpcClient { 

    private static final String HOST = "blabla.yourhostname.com"; 

    private final AbstractHttpClient httpClient; 

    public JsonRpcClient(String username, String password) { 
     httpClient = new DefaultHttpClient(); 
     httpClient.getAuthSchemes().register("ntlm", new JCIFSNTLMSchemeFactory()); 
     httpClient.getCredentialsProvider().setCredentials(
      new AuthScope(HOST, -1), 
      new NTCredentials(username, password, "", "")); 
    } 

    ... 

} 

Это работает для меня на nexus 4 и эмуляторах.

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

  • Нет связанных вопросов^_^