You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2015/01/26 11:03:13 UTC

svn commit: r1654753 - in /httpcomponents/httpclient/trunk/httpclient/src: main/java/org/apache/http/impl/auth/ test/java/org/apache/http/impl/auth/

Author: olegk
Date: Mon Jan 26 10:03:12 2015
New Revision: 1654753

URL: http://svn.apache.org/r1654753
Log:
HTTPCLIENT-1604: accept empty BASIC auth challenge as valid

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestBasicScheme.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestRFC2617Scheme.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java?rev=1654753&r1=1654752&r2=1654753&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java Mon Jan 26 10:03:12 2015
@@ -140,6 +140,9 @@ public class DigestScheme extends RFC261
             final Header header) throws MalformedChallengeException {
         super.processChallenge(header);
         this.complete = true;
+        if (getParameters().isEmpty()) {
+            throw new MalformedChallengeException("Authentication challenge is empty");
+        }
     }
 
     /**

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java?rev=1654753&r1=1654752&r2=1654753&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/RFC2617Scheme.java Mon Jan 26 10:03:12 2015
@@ -115,9 +115,6 @@ public abstract class RFC2617Scheme exte
         final HeaderValueParser parser = BasicHeaderValueParser.INSTANCE;
         final ParserCursor cursor = new ParserCursor(pos, buffer.length());
         final HeaderElement[] elements = parser.parseElements(buffer, cursor);
-        if (elements.length == 0) {
-            throw new MalformedChallengeException("Authentication challenge is empty");
-        }
         this.params.clear();
         for (final HeaderElement element : elements) {
             this.params.put(element.getName().toLowerCase(Locale.ROOT), element.getValue());

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestBasicScheme.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestBasicScheme.java?rev=1654753&r1=1654752&r2=1654753&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestBasicScheme.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestBasicScheme.java Mon Jan 26 10:03:12 2015
@@ -37,7 +37,6 @@ import org.apache.http.Header;
 import org.apache.http.HttpRequest;
 import org.apache.http.auth.AUTH;
 import org.apache.http.auth.AuthScheme;
-import org.apache.http.auth.MalformedChallengeException;
 import org.apache.http.auth.UsernamePasswordCredentials;
 import org.apache.http.message.BasicHeader;
 import org.apache.http.message.BasicHttpRequest;
@@ -52,12 +51,13 @@ import org.junit.Test;
  */
 public class TestBasicScheme {
 
-    @Test(expected=MalformedChallengeException.class)
-    public void testBasicAuthenticationWithNoRealm() throws Exception {
+    @Test
+    public void testBasicAuthenticationEmptyChallenge() throws Exception {
         final String challenge = "Basic";
         final Header header = new BasicHeader(AUTH.WWW_AUTH, challenge);
         final AuthScheme authscheme = new BasicScheme();
         authscheme.processChallenge(header);
+        Assert.assertNull(authscheme.getRealm());
     }
 
     @Test

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestRFC2617Scheme.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestRFC2617Scheme.java?rev=1654753&r1=1654752&r2=1654753&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestRFC2617Scheme.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/auth/TestRFC2617Scheme.java Mon Jan 26 10:03:12 2015
@@ -143,13 +143,6 @@ public class TestRFC2617Scheme {
     }
 
     @Test(expected=MalformedChallengeException.class)
-    public void testEmptyHeader() throws Exception {
-        final TestAuthScheme authscheme = new TestAuthScheme();
-        final Header header = new BasicHeader(AUTH.WWW_AUTH, "Test    ");
-        authscheme.processChallenge(header);
-    }
-
-    @Test(expected=MalformedChallengeException.class)
     public void testInvalidHeaderValue() throws Exception {
         final TestAuthScheme authscheme = new TestAuthScheme();
         final Header header = new BasicHeader("whatever", "whatever");