Permalink
Browse files

use URI with query args for HA2

Otherwise, it will apparently not work at all for URLs with query args.
Tested with nginx 1.0.14.
  • Loading branch information...
chazmcgarvey committed May 24, 2012
1 parent bd1c86a commit 227871efd9be7a806e9b3994783da0b791a53b19
Showing with 4 additions and 4 deletions.
  1. +4 −4 ngx_http_auth_digest_module.c
@@ -403,11 +403,11 @@ ngx_http_auth_digest_verify_hash(ngx_http_request_t *r, ngx_http_auth_digest_cre
if (http_method.data==NULL) return NGX_HTTP_INTERNAL_SERVER_ERROR;
p = ngx_cpymem(http_method.data, r->method_name.data, r->method_end - r->method_name.data+1);
ha2_key.len = http_method.len + r->uri.len + 1;
ha2_key.len = http_method.len + r->unparsed_uri.len + 1;
ha2_key.data = ngx_pcalloc(r->pool, ha2_key.len);
if (ha2_key.data==NULL) return NGX_HTTP_INTERNAL_SERVER_ERROR;
p = ngx_cpymem(ha2_key.data, http_method.data, http_method.len-1); *p++ = ':';
p = ngx_cpymem(p, r->uri.data, r->uri.len);
p = ngx_cpymem(p, r->unparsed_uri.data, r->unparsed_uri.len);
HA2.len = 33;
HA2.data = ngx_pcalloc(r->pool, HA2.len);
@@ -487,11 +487,11 @@ ngx_http_auth_digest_verify_hash(ngx_http_request_t *r, ngx_http_auth_digest_cre
// recalculate the digest with a modified HA2 value (for rspauth) and emit the
// Authentication-Info header
ngx_memset(ha2_key.data, 0, ha2_key.len);
p = ngx_sprintf(ha2_key.data, ":%s", r->uri.data);
p = ngx_sprintf(ha2_key.data, ":%s", r->unparsed_uri.data);
ngx_memset(HA2.data, 0, HA2.len);
ngx_md5_init(&md5);
ngx_md5_update(&md5, ha2_key.data, r->uri.len);
ngx_md5_update(&md5, ha2_key.data, r->unparsed_uri.len);
ngx_md5_final(hash, &md5);
ngx_hex_dump(HA2.data, hash, 16);

0 comments on commit 227871e

Please sign in to comment.