[9] RFR: 8138990: Implementation of HTTP Digest authentication may be more flexible

Artem Smotrakov artem.smotrakov at oracle.com
Wed Dec 30 03:22:07 UTC 2015


Hi Michael,

Thanks for review, it looks like BNF notation uses only a comma as a 
separator

http://www.w3.org/Notation.html

...
<l>#<m>element

indicating at least l and at most m elements, each separated by one or 
more commas (",").
...

And here is "qop" definition from https://tools.ietf.org/html/rfc2617

...
       qop-options       = "qop" "=" <"> 1#qop-value <">
       qop-value         = "auth" | "auth-int" | token
...

Please take a look at updated webrev:

http://cr.openjdk.java.net/~asmotrak/http_auth_digest/webrev.01/

Artem

On 12/22/2015 05:59 AM, Michael McMahon wrote:
> Hi Artem,
>
>
> On 04/12/15 11:41, Artem Smotrakov wrote:
>> Hello,
>>
>> Please review this small fix for DigestAuthentication class.
>>
>> 1. Added a check in DigestAuthentication.setNonce(String) that nonce 
>> is not null. NPE may happen if a buggy HTTP server returns 
>> "WWW-Authenticate" header which doesn't contain a "nonce" field. 
>> According to RFCs 2069 [1] and 2617 [2], this is not expected 
>> behaviour, but it would be better if an HTTP client threw a checked 
>> IOException instead of NPE.
>>
>
> That's fine.
>
>> 2. Updated DigestAuthentication.setQop(String) method to accept both 
>> a whitespace and a comma as a delimiter. RFC 2617 [2] says that "qop" 
>> may contain more than one token, but it doesn't specify a delimiter 
>> for "qop" field in "WWW-Authenticate" header. There is an example of 
>> "WWW-Authenticate" header in RFC 2617 [2] where a comma is used as a 
>> delimiter of value in "qop" field.
>>
>
> It looks like the BNF specification mandates a comma and optional 
> linear white space.
> So, the old code was buggy, but we didn't see the problem because 
> there is typically
> only at most ever one value used for the qop field. But, to be 
> strictly correct, we would
> have to check for TABs also. So, I think the correct behavior is to 
> delimit using comma
> and remove any white space
>
> - Michael.
>
>> 3. Added a test for Digest authentication.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8138990
>> Webrev: http://cr.openjdk.java.net/~asmotrak/http_auth_digest/webrev.00/
>>
>> [1] https://tools.ietf.org/html/rfc2069
>> [2] https://tools.ietf.org/html/rfc2617
>>
>> Artem
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/net-dev/attachments/20151229/8c8d3ffb/attachment-0001.html>


More information about the net-dev mailing list