Example usage for org.apache.http.auth AuthScheme processChallenge

List of usage examples for org.apache.http.auth AuthScheme processChallenge

Introduction

In this page you can find the example usage for org.apache.http.auth AuthScheme processChallenge.

Prototype

void processChallenge(final Header header) throws MalformedChallengeException;

Source Link

Document

Processes the given challenge token.

Usage

From source file:eu.agno3.util.httpclient41.spnego.PreemptiveNegotiateAuthCache.java

@Override
public AuthScheme get(HttpHost host) {
    if (this.targetHost != null && this.targetHost.equals(host)) {
        AuthScheme scheme = new SPNegoScheme(this.stripPort);
        try {//from   w ww.j  av a  2 s  .  c om
            scheme.processChallenge(new BasicHeader("WWW-Authenticate", "Negotiate")); //$NON-NLS-1$//$NON-NLS-2$
        } catch (MalformedChallengeException e) {
            log.warn("Failed to process fake initial challenge:", e); //$NON-NLS-1$
        }
        log.debug("Returning PerRequestNegotiateScheme for host"); //$NON-NLS-1$
        return scheme;
    } else if (this.proxyHost != null && this.proxyHost.equals(host)) {
        AuthScheme scheme = new SPNegoScheme(this.stripPort);
        try {
            scheme.processChallenge(new BasicHeader("Proxy-Authenticate", "Negotiate")); //$NON-NLS-1$//$NON-NLS-2$
        } catch (MalformedChallengeException e) {
            log.warn("Failed to process fake initial challenge:", e); //$NON-NLS-1$
        }
        return scheme;
    }

    return super.get(host);
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthenticationWithStaleNonce() throws Exception {
    String challenge = "Digest realm=\"realm1\", "
            + "nonce=\"f2a3f18799759d4f1a1c068b92b573cb\", stale=\"true\"";
    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge);
    AuthScheme authscheme = new DigestScheme();
    authscheme.processChallenge(authChallenge);

    assertFalse(authscheme.isComplete());
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthenticationWithNoRealm() throws Exception {
    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, "Digest");
    try {/*w  w w. j  a  va 2  s .  c  om*/
        AuthScheme authscheme = new DigestScheme();
        authscheme.processChallenge(authChallenge);
        fail("Should have thrown MalformedChallengeException");
    } catch (MalformedChallengeException e) {
        // expected
    }
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthenticationWithNoRealm2() throws Exception {
    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, "Digest ");
    try {/*from  www .  j a  va 2  s . com*/
        AuthScheme authscheme = new DigestScheme();
        authscheme.processChallenge(authChallenge);
        fail("Should have thrown MalformedChallengeException");
    } catch (MalformedChallengeException e) {
        // expected
    }
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthenticationWithDefaultCreds() throws Exception {
    String challenge = "Digest realm=\"realm1\", nonce=\"f2a3f18799759d4f1a1c068b92b573cb\"";
    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge);
    HttpRequest request = new BasicHttpRequest("Simple", "/");
    Credentials cred = new UsernamePasswordCredentials("username", "password");
    AuthScheme authscheme = new DigestScheme();
    authscheme.processChallenge(authChallenge);
    Header authResponse = authscheme.authenticate(cred, request);

    Map<String, String> table = parseAuthResponse(authResponse);
    assertEquals("username", table.get("username"));
    assertEquals("realm1", table.get("realm"));
    assertEquals("/", table.get("uri"));
    assertEquals("f2a3f18799759d4f1a1c068b92b573cb", table.get("nonce"));
    assertEquals("e95a7ddf37c2eab009568b1ed134f89a", table.get("response"));
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthentication() throws Exception {
    String challenge = "Digest realm=\"realm1\", nonce=\"f2a3f18799759d4f1a1c068b92b573cb\"";
    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge);
    HttpRequest request = new BasicHttpRequest("Simple", "/");
    Credentials cred = new UsernamePasswordCredentials("username", "password");
    AuthScheme authscheme = new DigestScheme();
    authscheme.processChallenge(authChallenge);
    Header authResponse = authscheme.authenticate(cred, request);

    Map<String, String> table = parseAuthResponse(authResponse);
    assertEquals("username", table.get("username"));
    assertEquals("realm1", table.get("realm"));
    assertEquals("/", table.get("uri"));
    assertEquals("f2a3f18799759d4f1a1c068b92b573cb", table.get("nonce"));
    assertEquals("e95a7ddf37c2eab009568b1ed134f89a", table.get("response"));
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthenticationWithQueryStringInDigestURI() throws Exception {
    String challenge = "Digest realm=\"realm1\", nonce=\"f2a3f18799759d4f1a1c068b92b573cb\"";
    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge);
    HttpRequest request = new BasicHttpRequest("Simple", "/?param=value");
    Credentials cred = new UsernamePasswordCredentials("username", "password");
    AuthScheme authscheme = new DigestScheme();
    authscheme.processChallenge(authChallenge);
    Header authResponse = authscheme.authenticate(cred, request);

    Map<String, String> table = parseAuthResponse(authResponse);
    assertEquals("username", table.get("username"));
    assertEquals("realm1", table.get("realm"));
    assertEquals("/?param=value", table.get("uri"));
    assertEquals("f2a3f18799759d4f1a1c068b92b573cb", table.get("nonce"));
    assertEquals("a847f58f5fef0bc087bcb9c3eb30e042", table.get("response"));
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthenticationWithSHA() throws Exception {
    String challenge = "Digest realm=\"realm1\", " + "nonce=\"f2a3f18799759d4f1a1c068b92b573cb\", "
            + "algorithm=SHA";
    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge);
    HttpRequest request = new BasicHttpRequest("Simple", "/");
    Credentials cred = new UsernamePasswordCredentials("username", "password");
    AuthScheme authscheme = new DigestScheme();
    authscheme.processChallenge(authChallenge);
    Header authResponse = authscheme.authenticate(cred, request);

    Map<String, String> table = parseAuthResponse(authResponse);
    assertEquals("username", table.get("username"));
    assertEquals("realm1", table.get("realm"));
    assertEquals("/", table.get("uri"));
    assertEquals("f2a3f18799759d4f1a1c068b92b573cb", table.get("nonce"));
    assertEquals("8769e82e4e28ecc040b969562b9050580c6d186d", table.get("response"));
}

From source file:securitydigest.TestDigestScheme.java

/** 
 * Test digest authentication with invalud qop value
 *//*ww w.  j  a  v a 2s.c om*/
public void testDigestAuthenticationMD5SessInvalidQop() throws Exception {
    // Example using Digest auth with MD5-sess

    String realm = "realm";
    String nonce = "e273f1776275974f1a120d8b92c5b3cb";

    String challenge = "Digest realm=\"" + realm + "\", " + "nonce=\"" + nonce + "\", "
            + "opaque=\"SomeString\", " + "stale=false, " + "algorithm=MD5-sess, " + "qop=\"jakarta\""; // jakarta is an invalid qop value

    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge);

    try {
        AuthScheme authscheme = new DigestScheme();
        authscheme.processChallenge(authChallenge);
        fail("MalformedChallengeException exception expected due to invalid qop value");
    } catch (MalformedChallengeException e) {
    }
}

From source file:securitydigest.TestDigestScheme.java

public void testDigestAuthenticationWithMultipleRealms() throws Exception {
    String challenge1 = "Digest realm=\"realm1\", nonce=\"abcde\"";
    String challenge2 = "Digest realm=\"realm2\", nonce=\"123546\"";
    Credentials cred = new UsernamePasswordCredentials("username", "password");
    Credentials cred2 = new UsernamePasswordCredentials("uname2", "password2");

    Header authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge1);
    HttpRequest request = new BasicHttpRequest("Simple", "/");
    AuthScheme authscheme = new DigestScheme();
    authscheme.processChallenge(authChallenge);
    Header authResponse = authscheme.authenticate(cred, request);

    Map<String, String> table = parseAuthResponse(authResponse);
    assertEquals("username", table.get("username"));
    assertEquals("realm1", table.get("realm"));
    assertEquals("/", table.get("uri"));
    assertEquals("abcde", table.get("nonce"));
    assertEquals("786f500303eac1478f3c2865e676ed68", table.get("response"));

    authChallenge = new BasicHeader(AUTH.WWW_AUTH, challenge2);
    AuthScheme authscheme2 = new DigestScheme();
    authscheme2.processChallenge(authChallenge);
    authResponse = authscheme2.authenticate(cred2, request);

    table = parseAuthResponse(authResponse);
    assertEquals("uname2", table.get("username"));
    assertEquals("realm2", table.get("realm"));
    assertEquals("/", table.get("uri"));
    assertEquals("123546", table.get("nonce"));
    assertEquals("0283edd9ef06a38b378b3b74661391e9", table.get("response"));
}