Java 类org.apache.http.impl.auth.DigestScheme 实例源码

项目:eSDK_EC_SDK_Java    文件:RestfulAdapterImplHttpClient.java   
private synchronized void checkLocalContext()
{
    if (null != sdkProtocolAdatperCustProvider && null != target)
    {
        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local auth cache
        String authType = (String) ThreadLocalHolder.get().getEntities().get("AuthType");
        if ("Basic".equals(authType))
        {
            LOGGER.debug("authentication type: basic");
        }
        else
        {
            DigestScheme digestAuth = new DigestScheme();
            digestAuth.overrideParamter("nc", String.valueOf(serverNounceCount++));
            digestAuth.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
            digestAuth.overrideParamter("qop", "auth");
            authCache.put(target, digestAuth);
        }

        // Add AuthCache to the execution context
        localContext = new BasicHttpContext();
        localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
    }
}
项目:eSDK_EC_SDK_Java    文件:RestfulAdapterImplHttpClientHTLS.java   
private synchronized void checkLocalContext()
{
    if (null != sdkProtocolAdatperCustProvider && null != target)
    {
        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local auth cache
        String authType = (String)ThreadLocalHolder.get().getEntities().get("AuthType");
        if ("Basic".equals(authType))
        {
            LOGGER.debug("authentication type: basic");
        }
        else
        {
            DigestScheme digestAuth = new DigestScheme();
            digestAuth.overrideParamter("nc", String.valueOf(serverNounceCount++));
            digestAuth.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
            digestAuth.overrideParamter("qop", "auth");
            authCache.put(target, digestAuth);
        }

        // Add AuthCache to the execution context
        localContext = new BasicHttpContext();
        localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
    }
}
项目:eSDK_IVS_Java    文件:RestfulAdapterImplHttpClient.java   
private synchronized void checkLocalContext()
{
    if (null != sdkProtocolAdatperCustProvider && null != target)
    {
        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local auth cache
        String authType = (String) ThreadLocalHolder.get().getEntities().get("AuthType");
        if ("Basic".equals(authType))
        {
            LOGGER.debug("authentication type: basic");
        }
        else
        {
            DigestScheme digestAuth = new DigestScheme();
            digestAuth.overrideParamter("nc", String.valueOf(serverNounceCount++));
            digestAuth.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
            digestAuth.overrideParamter("qop", "auth");
            authCache.put(target, digestAuth);
        }

        // Add AuthCache to the execution context
        localContext = new BasicHttpContext();
        localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
    }
}
项目:eSDK_IVS_Java    文件:RestfulAdapterImplHttpClientHTLS.java   
private synchronized void checkLocalContext()
{
    if (null != sdkProtocolAdatperCustProvider && null != target)
    {
        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local auth cache
        String authType = (String)ThreadLocalHolder.get().getEntities().get("AuthType");
        if ("Basic".equals(authType))
        {
            LOGGER.debug("authentication type: basic");
        }
        else
        {
            DigestScheme digestAuth = new DigestScheme();
            digestAuth.overrideParamter("nc", String.valueOf(serverNounceCount++));
            digestAuth.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
            digestAuth.overrideParamter("qop", "auth");
            authCache.put(target, digestAuth);
        }

        // Add AuthCache to the execution context
        localContext = new BasicHttpContext();
        localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
    }
}
项目:FritzTR064    文件:FritzConnection.java   
public void init() throws ClientProtocolException, IOException, JAXBException {
    if (user != null && pwd != null) {
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials(user, pwd));
        AuthCache authCache = new BasicAuthCache();
        DigestScheme digestScheme = new DigestScheme();
        digestScheme.overrideParamter("realm", "F!Box SOAP-Auth");
        digestScheme.overrideParamter("nonce", Long.toString(new Random().nextLong(), 36));
        digestScheme.overrideParamter("qop", "auth");
        digestScheme.overrideParamter("nc", "0");
        digestScheme.overrideParamter("cnonce", DigestScheme.createCnonce());
        authCache.put(targetHost, digestScheme);
        context.setCredentialsProvider(credsProvider);
        context.setAuthCache(authCache);
        readTR64();
    } else {
        readIGDDESC();
    }

}
项目:syncope    文件:HttpUtils.java   
public String postWithDigestAuth(final String url, final String file) {
    String responseBodyAsString = "";
    try (CloseableHttpResponse response =
            httpClient.execute(targetHost, httpPost(url, MultipartEntityBuilder.create().
                    addPart("bin", new FileBody(new File(file))).build()),
                    setAuth(targetHost, new DigestScheme()))) {
        responseBodyAsString = IOUtils.toString(response.getEntity().getContent(), Charset.forName("UTF-8"));
        handler.logOutput("Http status: " + response.getStatusLine().getStatusCode(), true);
        InstallLog.getInstance().info("Http status: " + response.getStatusLine().getStatusCode());
    } catch (IOException e) {
        final String messageError = "Error calling " + url + ": " + e.getMessage();
        handler.emitError(messageError, messageError);
        InstallLog.getInstance().error(messageError);
    }

    return responseBodyAsString;
}
项目:syncope    文件:HttpUtils.java   
public int postWithStringEntity(final String url, final String stringEntity) {
    int status = 0;
    try {
        final HttpPost httPost = httpPost(url, new StringEntity(stringEntity));
        httPost.addHeader("Content-Type", ContentType.APPLICATION_JSON.getMimeType());
        try (CloseableHttpResponse response =
                httpClient.execute(targetHost, httPost, setAuth(targetHost, new DigestScheme()))) {
            status = response.getStatusLine().getStatusCode();
            handler.logOutput("Http status: " + status, true);
            InstallLog.getInstance().info("Http status: " + status);
        }
    } catch (final IOException ioe) {
        final String messageError = "Error calling " + url + ": " + ioe.getMessage();
        handler.emitError(messageError, messageError);
        InstallLog.getInstance().error(messageError);

    }
    return status;
}
项目:eSDK_EC_SDK_Java    文件:RestUtils.java   
private void buildBasicHttpContext()
{
    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();
    digestScheme.overrideParamter("nc", String.valueOf(serverNounceCount++));
    digestScheme.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
    digestScheme.overrideParamter("qop", "auth");
    authCache.put(target, digestScheme);

    localContext = new BasicHttpContext();
    localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
}
项目:eSDK_EC_SDK_Java    文件:RestUtils.java   
private void buildBasicHttpContext()
{
    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();
    digestScheme.overrideParamter("nc", String.valueOf(serverNounceCount++));
    digestScheme.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
    digestScheme.overrideParamter("qop", "auth");
    authCache.put(target, digestScheme);

    localContext = new BasicHttpContext();
    localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
}
项目:eSDK_EC_SDK_Java    文件:RestUtils.java   
private void buildBasicHttpContext()
{
    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();
    digestScheme.overrideParamter("nc", String.valueOf(serverNounceCount++));
    digestScheme.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
    digestScheme.overrideParamter("qop", "auth");
    authCache.put(target, digestScheme);

    localContext = new BasicHttpContext();
    localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
}
项目:eSDK_EC_SDK_Java    文件:RestUtils.java   
private void buildBasicHttpContext()
{
    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();
    digestScheme.overrideParamter("nc", String.valueOf(serverNounceCount++));
    digestScheme.overrideParamter("cnonce", UUID.randomUUID().toString().replaceAll("-", ""));
    digestScheme.overrideParamter("qop", "auth");
    authCache.put(target, digestScheme);

    localContext = new BasicHttpContext();
    localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
}
项目:PhET    文件:ClientPreemptiveDigestAuthentication.java   
public void process(
        final HttpResponse response, 
        final HttpContext context) throws HttpException, IOException {
    AuthState authState = (AuthState) context.getAttribute(
            ClientContext.TARGET_AUTH_STATE);
    if (authState != null) {
        AuthScheme authScheme = authState.getAuthScheme();
        // Stick the auth scheme to the local context, so
        // we could try to authenticate subsequent requests
        // preemptively
        if (authScheme instanceof DigestScheme) {
            context.setAttribute("preemptive-auth", authScheme);
        }
    }
}
项目:purecloud-iot    文件:TestAuthenticationStrategy.java   
@Test
public void testCredentialsFound() throws Exception {
    final TargetAuthenticationStrategy authStrategy = new TargetAuthenticationStrategy();
    final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_UNAUTHORIZED, "UNAUTHORIZED");
    final HttpHost authhost = new HttpHost("somehost", 80);
    final HttpClientContext context = HttpClientContext.create();

    final Map<String, Header> challenges = new HashMap<String, Header>();
    challenges.put("basic", new BasicHeader(AUTH.WWW_AUTH, "Basic realm=\"realm1\""));
    challenges.put("digest", new BasicHeader(AUTH.WWW_AUTH, "Digest realm=\"realm2\", nonce=\"1234\""));

    final Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
        .register("basic", new BasicSchemeFactory())
        .register("digest", new DigestSchemeFactory()).build();
    context.setAuthSchemeRegistry(authSchemeRegistry);

    final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
    credentialsProvider.setCredentials(new AuthScope("somehost", 80, "realm2"),
            new UsernamePasswordCredentials("user", "pwd"));
    context.setCredentialsProvider(credentialsProvider);

    final Queue<AuthOption> options = authStrategy.select(challenges, authhost, response, context);
    Assert.assertNotNull(options);
    Assert.assertEquals(1, options.size());
    final AuthOption option = options.remove();
    Assert.assertTrue(option.getAuthScheme() instanceof DigestScheme);
}
项目:purecloud-iot    文件:TestAuthenticationStrategy.java   
@Test
public void testUnsupportedScheme() throws Exception {
    final TargetAuthenticationStrategy authStrategy = new TargetAuthenticationStrategy();
    final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_UNAUTHORIZED, "UNAUTHORIZED");
    final HttpHost authhost = new HttpHost("somehost", 80);
    final HttpClientContext context = HttpClientContext.create();

    final Map<String, Header> challenges = new HashMap<String, Header>();
    challenges.put("basic", new BasicHeader(AUTH.WWW_AUTH, "Basic realm=\"realm1\""));
    challenges.put("digest", new BasicHeader(AUTH.WWW_AUTH, "Digest realm=\"realm2\", nonce=\"1234\""));
    challenges.put("whatever", new BasicHeader(AUTH.WWW_AUTH, "Whatever realm=\"realm3\""));

    final Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
        .register("basic", new BasicSchemeFactory())
        .register("digest", new DigestSchemeFactory()).build();
    context.setAuthSchemeRegistry(authSchemeRegistry);

    final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
    credentialsProvider.setCredentials(new AuthScope("somehost", 80),
            new UsernamePasswordCredentials("user", "pwd"));
    context.setCredentialsProvider(credentialsProvider);

    final Queue<AuthOption> options = authStrategy.select(challenges, authhost, response, context);
    Assert.assertNotNull(options);
    Assert.assertEquals(2, options.size());
    final AuthOption option1 = options.remove();
    Assert.assertTrue(option1.getAuthScheme() instanceof DigestScheme);
    final AuthOption option2 = options.remove();
    Assert.assertTrue(option2.getAuthScheme() instanceof BasicScheme);
}
项目:gocd-build-status-notifier    文件:HTTPClient.java   
private AuthCache getAuthCache(AuthenticationType authenticationType, HttpHost target) {
    AuthCache authCache = new BasicAuthCache();
    if (authenticationType == AuthenticationType.BASIC) {
        authCache.put(target, new BasicScheme());
    } else {
        authCache.put(target, new DigestScheme());
    }
    return authCache;
}
项目:spring-usc    文件:RDFGeneratorServlet.java   
private int invokeHTTPRequestWithAuth(HttpHost httpHost, HttpPost httpPost,
        String contentType, String acceptContentType, String userName,
        String password) throws ClientProtocolException, IOException {

    DefaultHttpClient httpClient = new DefaultHttpClient();

    if (acceptContentType != null && !acceptContentType.isEmpty()) {
        httpPost.setHeader(HTTP_HEADERS.Accept.name(), acceptContentType);
    }
    if (contentType != null && !contentType.isEmpty()) {
        httpPost.setHeader("Content-Type", contentType);
    }

    httpClient.getCredentialsProvider().setCredentials(
            new AuthScope(httpHost.getHostName(), httpHost.getPort()),
            new UsernamePasswordCredentials(userName, password));

    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();

    digestScheme.overrideParamter("realm", "SPARQL"); // Virtuoso specific
    // digestScheme.overrideParamter("nonce", new Nonc);

    authCache.put(httpHost, digestScheme);

    BasicHttpContext localcontext = new BasicHttpContext();
    localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);

    // Execute the request
    HttpResponse response = httpClient.execute(httpHost, httpPost,
            localcontext);

    return response.getStatusLine().getStatusCode();
}
项目:spring-usc    文件:RDFGeneratorServlet.java   
private int invokeHTTPDeleteWithAuth(HttpHost httpHost, String url,
        String userName, String password) throws ClientProtocolException,
        IOException {
    HttpDelete httpDelete = new HttpDelete(url);

    DefaultHttpClient httpClient = new DefaultHttpClient();

    httpClient.getCredentialsProvider().setCredentials(
            new AuthScope(httpHost.getHostName(), httpHost.getPort()),
            new UsernamePasswordCredentials(userName, password));

    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();

    digestScheme.overrideParamter("realm", "SPARQL"); // Virtuoso specific
    // digestScheme.overrideParamter("nonce", new Nonc);

    authCache.put(httpHost, digestScheme);

    BasicHttpContext localcontext = new BasicHttpContext();
    localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);

    // Execute the request
    HttpResponse response = httpClient.execute(httpHost, httpDelete,
            localcontext);

    logger.info(Integer.toString(response.getStatusLine().getStatusCode()));

    return response.getStatusLine().getStatusCode();
}
项目:cJUnit-mc626    文件:ClientPreemptiveDigestAuthentication.java   
public void process(
        final HttpResponse response, 
        final HttpContext context) throws HttpException, IOException {
    AuthState authState = (AuthState) context.getAttribute(
            ClientContext.TARGET_AUTH_STATE);
    if (authState != null) {
        AuthScheme authScheme = authState.getAuthScheme();
        // Stick the auth scheme to the local context, so
        // we could try to authenticate subsequent requests
        // preemptively
        if (authScheme instanceof DigestScheme) {
            context.setAttribute("preemptive-auth", authScheme);
        }
    }
}
项目:compose-idm    文件:DigestHttpComponentsClientHttpRequestFactory.java   
private HttpContext createHttpContext(URI uri){
    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();
    HttpHost targetHost = new HttpHost(uri.getHost(), uri.getPort());
    authCache.put(targetHost, digestScheme);

    BasicHttpContext localcontext = new BasicHttpContext();
    localcontext.setAttribute(HttpClientContext.AUTH_CACHE, authCache);
    return localcontext;
}
项目:restfiddle    文件:DigestAuthHandler.java   
public HttpClientContext preemptive() {
AuthCache authCache = new BasicAuthCache();

DigestScheme digestAuth = new DigestScheme();

digestAuth.overrideParamter("realm", "");
digestAuth.overrideParamter("nonce", "");

// TODO : Add target
// authCache.put(target, digestAuth);
HttpClientContext localContext = HttpClientContext.create();
localContext.setAuthCache(authCache);

return localContext;
   }
项目:servioticy-pdp    文件:DigestHttpComponentsClientHttpRequestFactory.java   
private HttpContext createHttpContext(URI uri){
    AuthCache authCache = new BasicAuthCache();
    DigestScheme digestScheme = new DigestScheme();
    HttpHost targetHost = new HttpHost(uri.getHost(), uri.getPort());
    authCache.put(targetHost, digestScheme);

    BasicHttpContext localcontext = new BasicHttpContext();
    localcontext.setAttribute(HttpClientContext.AUTH_CACHE, authCache);
    return localcontext;
}
项目:exchange-ws-client    文件:CustomHttpComponentsMessageSender.java   
/**
 * 
 * @param scheme
 * @return
 */
protected AuthScheme identifyScheme(String scheme) {
    if(new BasicScheme().getSchemeName().equalsIgnoreCase(scheme)) {
        return new BasicScheme();
    } else if (new DigestScheme().getSchemeName().equalsIgnoreCase(scheme)) {
        return new DigestScheme();
    } else {
        // fallback
        return new BasicScheme();
    }
}
项目:wmc    文件:DownloadInfo.java   
public void process(
        final HttpResponse response, 
        final HttpContext context) throws HttpException, IOException {
    AuthState authState = (AuthState) context.getAttribute(
            ClientContext.TARGET_AUTH_STATE);
    if (authState != null) {
        AuthScheme authScheme = authState.getAuthScheme();
        if (authScheme instanceof DigestScheme) {
            context.setAttribute("preemptive-auth", authScheme);
        }
    }
}
项目:gradle-download-task    文件:AuthenticationTest.java   
/**
 * Tests if the plugin correctly converts the Digest authentication scheme
 * @throws Exception if anything goes wrong
 */
@Test
public void convertDigest() throws Exception {
    Download t = makeProjectAndTask();
    t.authScheme("Digest");
    assertTrue(t.getAuthScheme() instanceof DigestScheme);
}
项目:PhET    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {

        DefaultHttpClient httpclient = new DefaultHttpClient();

        httpclient.getCredentialsProvider().setCredentials(
                new AuthScope("localhost", 80), 
                new UsernamePasswordCredentials("username", "password"));

        BasicHttpContext localcontext = new BasicHttpContext();
        // Generate DIGEST scheme object, initialize it and stick it to 
        // the local execution context
        DigestScheme digestAuth = new DigestScheme();
        // Suppose we already know the realm name
        digestAuth.overrideParamter("realm", "some realm");        
        // Suppose we already know the expected nonce value 
        digestAuth.overrideParamter("nonce", "whatever");        
        localcontext.setAttribute("preemptive-auth", digestAuth);

        // Add as the first request interceptor
        httpclient.addRequestInterceptor(new PreemptiveAuth(), 0);
        // Add as the last response interceptor
        httpclient.addResponseInterceptor(new PersistentDigest());

        HttpHost targetHost = new HttpHost("localhost", 80, "http"); 

        HttpGet httpget = new HttpGet("/");

        System.out.println("executing request: " + httpget.getRequestLine());
        System.out.println("to target: " + targetHost);

        for (int i = 0; i < 3; i++) {
            HttpResponse response = httpclient.execute(targetHost, httpget, localcontext);
            HttpEntity entity = response.getEntity();

            System.out.println("----------------------------------------");
            System.out.println(response.getStatusLine());
            if (entity != null) {
                System.out.println("Response content length: " + entity.getContentLength());
                entity.consumeContent();
            }
        }

        // When HttpClient instance is no longer needed, 
        // shut down the connection manager to ensure
        // immediate deallocation of all system resources
        httpclient.getConnectionManager().shutdown();        
    }
项目:purecloud-iot    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {
    HttpHost target = new HttpHost("httpbin.org", 80, "http");
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("user", "passwd"));
    CloseableHttpClient httpclient = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider)
            .build();
    try {

        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local
        // auth cache
        DigestScheme digestAuth = new DigestScheme();
        // Suppose we already know the realm name
        digestAuth.overrideParamter("realm", "some realm");
        // Suppose we already know the expected nonce value
        digestAuth.overrideParamter("nonce", "whatever");
        authCache.put(target, digestAuth);

        // Add AuthCache to the execution context
        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet httpget = new HttpGet("http://httpbin.org/digest-auth/auth/user/passwd");

        System.out.println("Executing request " + httpget.getRequestLine() + " to target " + target);
        for (int i = 0; i < 3; i++) {
            CloseableHttpResponse response = httpclient.execute(target, httpget, localContext);
            try {
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                System.out.println(EntityUtils.toString(response.getEntity()));
            } finally {
                response.close();
            }
        }
    } finally {
        httpclient.close();
    }
}
项目:r01fb    文件:AuthDigestSolutionRetriever.java   
/**
 * Obtiene el valor que hay que poner en la cabecera "Authorization" de la request HTTP
 * @param code c�d
 * @param headers
 * @param requestMethod
 * @param url
 * @param authUser
 * @param authPwd
 * @return
 */
public static String getAuthorizationHeaderValue(final HttpURLConnection serverConnectionNoAuth,
                                                 final RequestMethod requestMethod,final String strUrl,
                                                 final UserCode authUser,final Password authPwd) throws IOException,
                                                                                                        AuthenticationException,
                                                                                                        MalformedChallengeException {
    // A org.apache.http.impl.auth.DigestScheme instance is
    // what will process the challenge from the web-server
    final DigestScheme md5Auth = new DigestScheme();
    // Validate that we got an HTTP 401 back
    HttpResponseCode serverNoAuthResponseCode = HttpResponseCode.of(serverConnectionNoAuth.getResponseCode());
    if (serverNoAuthResponseCode.is(HttpResponseCode.UNAUTHORIZED)) {
        if (CollectionUtils.isNullOrEmpty(serverConnectionNoAuth.getHeaderFields())) throw new IllegalStateException("HTTP Headers not received!");
        // headers normalization
        Map<String,String> headersKeys = _normalizeHeadersKeys(serverConnectionNoAuth.getHeaderFields());
        if (headersKeys.containsKey("WWW-AUTHENTICATE")) {
            // [1] Obtener un objeto HttpRequest a partir de la URL y el m�todo (GET/POST/PUT/DELETE)
            java.net.URL url = null;
            try {
                url = new URL(strUrl);
            } catch (MalformedURLException e1) {
                throw new IllegalStateException("The url is malformed");
            }
            HttpRequestBase commonsHttpRequest = _commonsHttpClientRequestFrom(requestMethod,url.getPath());

            // [2] Generate a solution Authentication header using the username and password.
            // 2.1 Get the challenge and solve.
            String challenge = serverConnectionNoAuth.getHeaderFields()
                                                     .get(headersKeys.get("WWW-AUTHENTICATE"))
                                                     .get(0);
            commonsHttpRequest.addHeader(headersKeys.get("WWW-AUTHENTICATE"),
                                         challenge);
            md5Auth.processChallenge(commonsHttpRequest.getHeaders(headersKeys.get("WWW-AUTHENTICATE"))[0]);

            // 2.2 Compose a Header object for the "Authorization" header
            Header solution = md5Auth.authenticate(new UsernamePasswordCredentials(authUser.asString(),
                                                                                   authPwd.asString()),
                                                   commonsHttpRequest,
                                                   new BasicHttpContext());
            return solution.getValue();     // the value of the composed Authorization header

        } 
        throw new IllegalStateException("A 401 response (unauthorized) has been received, but NO WWW-Authenticate header in this response!");
    } 
    throw new IllegalStateException("The request is supossed to be authenticated but the server response code was NOT 401 (unauthorized)");
}
项目:datacollector    文件:TestWebServicesFetcher.java   
@Test
public void testInitializationCustomNoSslDigestAuth() throws Exception {
  Properties props = new Properties();
  props.setProperty(WebServicesFetcher.URL_KEY, "http://foo");
  props.setProperty(WebServicesFetcher.APP_ID_KEY, "appId");
  props.setProperty(WebServicesFetcher.KEYSTORE_FILE_KEY, "");
  props.setProperty(WebServicesFetcher.KEYSTORE_PASSWORD_KEY, "");
  props.setProperty(WebServicesFetcher.KEY_PASSWORD_KEY, "");
  props.setProperty(WebServicesFetcher.TRUSTSTORE_FILE_KEY, "");
  props.setProperty(WebServicesFetcher.TRUSTSTORE_PASSWORD_KEY, "");
  props.setProperty(WebServicesFetcher.SUPPORTED_PROTOCOLS_KEY, "");
  props.setProperty(WebServicesFetcher.HOSTNAME_VERIFIER_SKIP_KEY, "");
  props.setProperty(WebServicesFetcher.MAX_CONCURRENT_CONNECTIONS_KEY, "1");
  props.setProperty(WebServicesFetcher.VALIDATE_AFTER_INACTIVITY_KEY, "2");
  props.setProperty(WebServicesFetcher.CONNECTION_TIMEOUT_KEY, "5000");
  props.setProperty(WebServicesFetcher.NAME_SEPARATOR_KEY, "+");
  props.setProperty(WebServicesFetcher.HTTP_AUTH_TYPE_KEY, "digest");
  props.setProperty(WebServicesFetcher.HTTP_AUTH_USER_KEY, "user");
  props.setProperty(WebServicesFetcher.HTTP_AUTH_PASSWORD_KEY, "password");
  Configuration conf = createConfig(props);

  WebServicesFetcher fetcher = new WebServicesFetcher();
  try {
    fetcher.init(conf);
    Assert.assertNotNull(fetcher.getConfig());

    Assert.assertEquals("http://foo", fetcher.getUrl());
    Assert.assertEquals("appId", fetcher.getAppId());
    Assert.assertEquals(5000, fetcher.getConnectionTimeout());
    Assert.assertEquals("+", fetcher.getSeparator());
    Assert.assertEquals("digest", fetcher.getHttpAuth());
    Assert.assertEquals("user", fetcher.getHttpAuthUser());
    Assert.assertEquals("password", fetcher.getHttpAuthPassword());
    Assert.assertNotNull(fetcher.getCredentialsProvider());
    Assert.assertEquals("user",
        fetcher.getCredentialsProvider().getCredentials(AuthScope.ANY).getUserPrincipal().getName()
    );
    Assert.assertEquals("password", fetcher.getCredentialsProvider().getCredentials(AuthScope.ANY).getPassword());
    Assert.assertTrue(fetcher.getAuthCache().get(new HttpHost(fetcher.getUrl())) instanceof DigestScheme);

    PoolingHttpClientConnectionManager connectionManager = fetcher.getConnectionManager();
    Assert.assertEquals(1, connectionManager.getMaxTotal());
    Assert.assertEquals(1, connectionManager.getDefaultMaxPerRoute());
    Assert.assertEquals(2, connectionManager.getValidateAfterInactivity());

    Assert.assertNull(fetcher.getSslConnectionSocketFactory());
  } finally {
    fetcher.destroy();
  }
}
项目:Vapor    文件:DigestAuthenticator.java   
public DigestAuthenticator(DigestScheme mDigestScheme, Credentials credentials) {
    this.mDigestScheme = mDigestScheme;
    this.mCredentials = credentials;

}
项目:Vapor    文件:OkCloudAppModule.java   
@Provides
@Singleton
public DigestAuthenticator provideDigestAuthenticator(DigestScheme digestScheme, @Nullable Credentials credentials) {
    return new DigestAuthenticator(digestScheme, credentials);
}
项目:Vapor    文件:OkCloudAppModule.java   
@Provides
@Singleton
public DigestScheme providesDigestScheme() {
    return new DigestScheme();
}
项目:Analogy-and-Assessment    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {
    HttpHost target = new HttpHost("localhost", 80, "http");
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("username", "password"));
    CloseableHttpClient httpclient = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider)
            .build();
    try {

        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local
        // auth cache
        DigestScheme digestAuth = new DigestScheme();
        // Suppose we already know the realm name
        digestAuth.overrideParamter("realm", "some realm");
        // Suppose we already know the expected nonce value
        digestAuth.overrideParamter("nonce", "whatever");
        authCache.put(target, digestAuth);

        // Add AuthCache to the execution context
        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet httpget = new HttpGet("/");

        System.out.println("Executing request " + httpget.getRequestLine() + " to target " + target);
        for (int i = 0; i < 3; i++) {
            CloseableHttpResponse response = httpclient.execute(target, httpget, localContext);
            try {
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                EntityUtils.consume(response.getEntity());
            } finally {
                response.close();
            }
        }
    } finally {
        httpclient.close();
    }
}
项目:cJUnit-mc626    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {

        DefaultHttpClient httpclient = new DefaultHttpClient();

        httpclient.getCredentialsProvider().setCredentials(
                new AuthScope("localhost", 80), 
                new UsernamePasswordCredentials("username", "password"));

        BasicHttpContext localcontext = new BasicHttpContext();
        // Generate DIGEST scheme object, initialize it and stick it to 
        // the local execution context
        DigestScheme digestAuth = new DigestScheme();
        // Suppose we already know the realm name
        digestAuth.overrideParamter("realm", "some realm");        
        // Suppose we already know the expected nonce value 
        digestAuth.overrideParamter("nonce", "whatever");        
        localcontext.setAttribute("preemptive-auth", digestAuth);

        // Add as the first request interceptor
        httpclient.addRequestInterceptor(new PreemptiveAuth(), 0);
        // Add as the last response interceptor
        httpclient.addResponseInterceptor(new PersistentDigest());

        HttpHost targetHost = new HttpHost("localhost", 80, "http"); 

        HttpGet httpget = new HttpGet("/");

        System.out.println("executing request: " + httpget.getRequestLine());
        System.out.println("to target: " + targetHost);

        for (int i = 0; i < 3; i++) {
            HttpResponse response = httpclient.execute(targetHost, httpget, localcontext);
            HttpEntity entity = response.getEntity();

            System.out.println("----------------------------------------");
            System.out.println(response.getStatusLine());
            if (entity != null) {
                System.out.println("Response content length: " + entity.getContentLength());
                entity.consumeContent();
            }
        }

        // When HttpClient instance is no longer needed, 
        // shut down the connection manager to ensure
        // immediate deallocation of all system resources
        httpclient.getConnectionManager().shutdown();        
    }
项目:Raven    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {
    HttpHost target = new HttpHost("localhost", 80, "http");
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("username", "password"));
    CloseableHttpClient httpclient = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider)
            .build();
    try {

        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local
        // auth cache
        DigestScheme digestAuth = new DigestScheme();
        // Suppose we already know the realm name
        digestAuth.overrideParamter("realm", "some realm");
        // Suppose we already know the expected nonce value
        digestAuth.overrideParamter("nonce", "whatever");
        authCache.put(target, digestAuth);

        // Add AuthCache to the execution context
        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet httpget = new HttpGet("/");

        System.out.println("Executing request " + httpget.getRequestLine() + " to target " + target);
        for (int i = 0; i < 3; i++) {
            CloseableHttpResponse response = httpclient.execute(target, httpget, localContext);
            try {
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                EntityUtils.consume(response.getEntity());
            } finally {
                response.close();
            }
        }
    } finally {
        httpclient.close();
    }
}
项目:uw-android    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {
    HttpHost target = new HttpHost("localhost", 80, "http");
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("username", "password"));
    CloseableHttpClient httpclient = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider)
            .build();
    try {

        // Create AuthCache instance
        AuthCache authCache = new BasicAuthCache();
        // Generate DIGEST scheme object, initialize it and add it to the local
        // auth cache
        DigestScheme digestAuth = new DigestScheme();
        // Suppose we already know the realm name
        digestAuth.overrideParamter("realm", "some realm");
        // Suppose we already know the expected nonce value
        digestAuth.overrideParamter("nonce", "whatever");
        authCache.put(target, digestAuth);

        // Add AuthCache to the execution context
        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet httpget = new HttpGet("/");

        System.out.println("Executing request " + httpget.getRequestLine() + " to target " + target);
        for (int i = 0; i < 3; i++) {
            CloseableHttpResponse response = httpclient.execute(target, httpget, localContext);
            try {
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                EntityUtils.consume(response.getEntity());
            } finally {
                response.close();
            }
        }
    } finally {
        httpclient.close();
    }
}
项目:LibraryH3lp-Transfer-Bot    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {

        HttpHost targetHost = new HttpHost("localhost", 80, "http");

        DefaultHttpClient httpclient = new DefaultHttpClient();
        try {
            httpclient.getCredentialsProvider().setCredentials(
                    new AuthScope(targetHost.getHostName(), targetHost.getPort()),
                    new UsernamePasswordCredentials("username", "password"));

            // Create AuthCache instance
            AuthCache authCache = new BasicAuthCache();
            // Generate DIGEST scheme object, initialize it and add it to the local
            // auth cache
            DigestScheme digestAuth = new DigestScheme();
            // Suppose we already know the realm name
            digestAuth.overrideParamter("realm", "some realm");
            // Suppose we already know the expected nonce value
            digestAuth.overrideParamter("nonce", "whatever");
            authCache.put(targetHost, digestAuth);

            // Add AuthCache to the execution context
            BasicHttpContext localcontext = new BasicHttpContext();
            localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);

            HttpGet httpget = new HttpGet("/");

            System.out.println("executing request: " + httpget.getRequestLine());
            System.out.println("to target: " + targetHost);

            for (int i = 0; i < 3; i++) {
                HttpResponse response = httpclient.execute(targetHost, httpget, localcontext);
                HttpEntity entity = response.getEntity();

                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                if (entity != null) {
                    System.out.println("Response content length: " + entity.getContentLength());
                }
                EntityUtils.consume(entity);
            }

        } finally {
            // When HttpClient instance is no longer needed,
            // shut down the connection manager to ensure
            // immediate deallocation of all system resources
            httpclient.getConnectionManager().shutdown();
        }
    }
项目:openhab1-addons    文件:Tr064Comm.java   
/***
 * Creates a apache HTTP Client object, ignoring SSL Exceptions like self signed
 * certificates and sets Auth. Scheme to Digest Auth
 *
 * @param fboxUrl
 *            the URL from config file of fbox to connect to
 * @return the ready-to-use httpclient for tr064 requests
 */
private CloseableHttpClient createTr064HttpClient(String fboxUrl) {
    CloseableHttpClient hc = null;
    // Convert URL String from config in easy explotable URI object
    URIBuilder uriFbox = null;
    try {
        uriFbox = new URIBuilder(fboxUrl);
    } catch (URISyntaxException e) {
        logger.error("Invalid FritzBox URL! {}", e.getMessage());
        return null;
    }
    // Create context of the http client
    _httpClientContext = HttpClientContext.create();
    CookieStore cookieStore = new BasicCookieStore();
    _httpClientContext.setCookieStore(cookieStore);

    // SETUP AUTH
    // Auth is specific for this target
    HttpHost target = new HttpHost(uriFbox.getHost(), uriFbox.getPort(), uriFbox.getScheme());
    // Add digest authentication with username/pw from global config
    CredentialsProvider credp = new BasicCredentialsProvider();
    credp.setCredentials(new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials(_user, _pw));
    // Create AuthCache instance. Manages authentication based on server response
    AuthCache authCache = new BasicAuthCache();
    // Generate DIGEST scheme object, initialize it and add it to the local auth
    // cache. Digeste is standard for fbox auth SOAP
    DigestScheme digestAuth = new DigestScheme();
    digestAuth.overrideParamter("realm", "HTTPS Access"); // known from fbox specification
    digestAuth.overrideParamter("nonce", ""); // never known at first request
    authCache.put(target, digestAuth);
    // Add AuthCache to the execution context
    _httpClientContext.setAuthCache(authCache);

    // SETUP SSL TRUST
    SSLContextBuilder sslContextBuilder = new SSLContextBuilder();
    SSLConnectionSocketFactory sslsf = null;
    try {
        sslContextBuilder.loadTrustMaterial(null, new TrustSelfSignedStrategy()); // accept self signed certs
        // dont verify hostname against cert CN
        sslsf = new SSLConnectionSocketFactory(sslContextBuilder.build(), null, null, new NoopHostnameVerifier());
    } catch (Exception ex) {
        logger.error(ex.getMessage());
    }

    // Set timeout values
    RequestConfig rc = RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(4000).setConnectTimeout(4000)
            .setConnectionRequestTimeout(4000).build();

    // BUILDER
    // setup builder with parameters defined before
    hc = HttpClientBuilder.create().setSSLSocketFactory(sslsf) // set the SSL options which trust every self signed
                                                               // cert
            .setDefaultCredentialsProvider(credp) // set auth options using digest
            .setDefaultRequestConfig(rc) // set the request config specifying timeout
            .build();

    return hc;
}
项目:Gw2InfoViewer    文件:ClientPreemptiveDigestAuthentication.java   
public static void main(String[] args) throws Exception {

        HttpHost targetHost = new HttpHost("localhost", 80, "http");

        DefaultHttpClient httpclient = new DefaultHttpClient();
        try {
            httpclient.getCredentialsProvider().setCredentials(
                    new AuthScope(targetHost.getHostName(), targetHost.getPort()),
                    new UsernamePasswordCredentials("username", "password"));

            // Create AuthCache instance
            AuthCache authCache = new BasicAuthCache();
            // Generate DIGEST scheme object, initialize it and add it to the local
            // auth cache
            DigestScheme digestAuth = new DigestScheme();
            // Suppose we already know the realm name
            digestAuth.overrideParamter("realm", "some realm");
            // Suppose we already know the expected nonce value
            digestAuth.overrideParamter("nonce", "whatever");
            authCache.put(targetHost, digestAuth);

            // Add AuthCache to the execution context
            BasicHttpContext localcontext = new BasicHttpContext();
            localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);

            HttpGet httpget = new HttpGet("/");

            System.out.println("executing request: " + httpget.getRequestLine());
            System.out.println("to target: " + targetHost);

            for (int i = 0; i < 3; i++) {
                HttpResponse response = httpclient.execute(targetHost, httpget, localcontext);
                HttpEntity entity = response.getEntity();

                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                if (entity != null) {
                    System.out.println("Response content length: " + entity.getContentLength());
                }
                EntityUtils.consume(entity);
            }

        } finally {
            // When HttpClient instance is no longer needed,
            // shut down the connection manager to ensure
            // immediate deallocation of all system resources
            httpclient.getConnectionManager().shutdown();
        }
    }
项目:cas-5.1.0    文件:DigestAuthenticationUtils.java   
/**
 * Create cnonce string.
 *
 * @return the cnonce
 */
public static String createCnonce() {
    return DigestScheme.createCnonce();
}