Клиент Apache Abdera не предоставляет учетные данные для NTLM <любая область>@ proxy.tcs.com: 8080

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

Нет доступных учетных данных для NTLM @proxy.tcs.com:8080

Вот метод, который я использую

private static void UseAbdera() throws IOException 
{
    try 
    {
        Abdera abdera = new Abdera();
        AbderaClient client = new AbderaClient(abdera);
        client.setProxy("OrgProxyHost", 8080);
        NTLMAuthenticatorClass authenticator = new NTLMAuthenticatorClass("username", "password");
        Authenticator.setDefault(authenticator);
        NTCredentials ntcr = new NTCredentials("username", "password", "greenhouse.lotus.com", "India.TCS.com");

        client.addCredentials("https://greenhouse.lotus.com", null, null, ntcr);
        ClientResponse resp = client.get("https://greenhouse.lotus.com/forums/atom/service");
        org.apache.abdera.model.Document<org.apache.abdera.model.Service> service_doc = resp.getDocument();
        service_doc.writeTo(System.out);
        System.out.println("\n");
        org.apache.abdera.model.Service service = service_doc.getRoot();
        org.apache.abdera.model.Collection collection = service.getCollection("Forums Feed Collection", "My Topics");
        String coll_uri = collection.getResolvedHref().toASCIIString();
        org.apache.abdera.model.Entry entry = abdera.newEntry();
        entry.setTitle("TEST REPLY !");
        // Mark private
        resp = client.post(coll_uri, entry);
        switch (resp.getType()) 
        {
            case SUCCESS:
                String location = resp.getLocation().toASCIIString();
                System.out.println("New entry created at: " + location);
                break;

            default:
                System.out.println("Error: " + resp.getStatusText());
        }
    } catch (URISyntaxException ex) 
      {     
          Logger.getLogger(IBMConnectionMessages_ForumPractice.class.getName()).log(Level.SEVERE, null, ex);
      }
} 

Это журнал исключений, который я получаю

org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme INFO: выбрана схема проверки подлинности ntlm 6 июля 2012 г. 10:42:03 org.apache.commons.httpclient.HttpMethodDirector processProxyAuthChallenge INFO: нет доступной учетной записи 80 ExHL: 80 Expost для доступа к ресурсам: недоступен в потоке "main" java.lang.IllegalStateException в org.apache.abdera.protocol.client.CommonsResponse.(CommonsResponse.java:44) в org.apache.abdera.protocol.client.AbderaClient.execute(AbderaCli2.java)) в org.apache.abdera.protocol.client.AbderaClient.get(AbderaClient.java:216) в org.apache.abdera.protocol.client.AbderaClient.get(AbderaClient.java:404) в IBMConnectionMessages_ForumPractice. Java:231) в IBMConnectionMessages_ForumPractice.main(IBMConnectionMessages_ForumPractice.java:45)

Пожалуйста, помогите, я потратил на это полдня.

1 ответ

Вашему прокси-серверу может потребоваться проверка подлинности ntlm, поэтому при настройке учетных данных прокси-сервера укажите данные проверки подлинности прокси-сервера как NTCredentials.

Другие вопросы по тегам