title: No valid credentials provided (Mechanism level: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)) httpclient
body: <p>I am trying to download pdf file from server using http client using ntlm Auth Scheme. </p>
  
  <p>but I am getting below error when. The file is getting downloaded when I used wget with username and password as parameters but if I use same username and password it fails with 401 using java code. I am using httpclient 4.2.2</p>
  
  <pre><code>Authentication error: No valid credentials provided (Mechanism level: No valid credentials provided 
  (Mechanism level: Failed to find any Kerberos tgt))
  </code></pre>
  
  <p>Below is my code to download pdf using auth.</p>
  
  <pre><code> public ByteArrayOutputStream getFile1(String resourceURL) throws CRMBusinessException {
  DefaultHttpClient httpclient = new DefaultHttpClient();
  ByteArrayOutputStream tmpOut = null;
  try {
    ICRMConfigCache cache = CacheUtil.getCRMConfigCache();
    String host = cache.getConfigValue(ConfigEnum.DOCUMENT_SOURCE_HOST_NAME.toString());
    String user = cache.getConfigValue(ConfigEnum.HTTP_USER_NAME.toString());
    String password = cache.getConfigValue(ConfigEnum.HTTP_PASSWORD.toString());
    String workstation = cache.getConfigValue(ConfigEnum.CLIENT_HOST_NAME.toString());
  
    // Prerequisites
    PreCondition.checkEmptyString(resourceURL, "'resourceURL' cannot be empty or null");
    PreCondition.checkEmptyString(host, ConfigEnum.DOCUMENT_SOURCE_HOST_NAME + " property is not set in database");
    PreCondition.checkEmptyString(user, ConfigEnum.HTTP_USER_NAME + " property is not set in database");
    PreCondition.checkEmptyString(password, ConfigEnum.HTTP_PASSWORD + " property is not set in database");
    PreCondition.checkEmptyString(workstation, ConfigEnum.CLIENT_HOST_NAME + " property is not set in database");
  
    // NTLM authentication across all hosts and ports
    httpclient.getCredentialsProvider().setCredentials(
        new AuthScope(host, AuthScope.ANY_PORT, AuthScope.ANY_HOST),
        new NTCredentials(user, password, workstation, MY_DOMAIN));
  
    httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());
  
    // Execute the GET request
    HttpGet httpget = new HttpGet(resourceURL);
  
    HttpResponse httpresponse = httpclient.execute(httpget);
    if (httpresponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
  tmpOut = new ByteArrayOutputStream();
      InputStream in = httpresponse.getEntity().getContent();
      byte[] buf = new byte[1024];
      int len;
      while (true) {
        len = in.read(buf);
        if (len == -1) {
          break;
        }
        tmpOut.write(buf, 0, len);
      }
      tmpOut.close();
    }
  
    aLog.debug( "IntranetFileDownloaderImpl - getFile - End - " + resourceURL);
    return tmpOut;
  } catch (Exception e) {
    aLog.error("IntranetFileDownloaderImpl - getFile - Error while downloading " + resourceURL + "[" + e.getMessage() + "]", e);
    throw new CRMBusinessException(e);
  } finally {
    httpclient.getConnectionManager().shutdown();
  }
  }
  </code></pre>
  
  <p>Has anyone faced this kind of issue before while using httpclient?
  What does "Failed to find any Kerberos tgt" mean?
  Anybody has any clue on it?</p>