<div dir="ltr">Created <a href="http://trac.nginx.org/nginx/ticket/485#ticket">http://trac.nginx.org/nginx/ticket/485#ticket</a> to track this.<br><div><br></div><div>Thanks!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, Jan 13, 2014 at 9:08 PM, Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello!<br>
<div class="im"><br>
On Sat, Jan 11, 2014 at 10:28:52PM +0530, Fasih wrote:<br>
<br>
> Yes, that's how I noticed it. I am using nginx as a reverse proxy. The<br>
> upstream sends two WWW-Authenticate headers with different realms. I was<br>
> processing www_authenticate header and hadnt realized that it was legal to<br>
> send multiple WWW-Authenticate headers.<br>
<br>
</div>Looks like there are indeed valid real-world uses, see e.g. here:<br>
<br>
<a href="http://stackoverflow.com/a/15894841/1597813" target="_blank">http://stackoverflow.com/a/15894841/1597813</a><br>
<br>
I don't think we want to change www_authenticate to ngx_array_t,<br>
but it certainly counts as another case requiring better support<br>
for multiple headers, much like with $upstream_http_set_cookie and<br>
multiple Set-Cookie headers, and so on.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> On Fri, Jan 10, 2014 at 7:19 PM, Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>> wrote:<br>
><br>
> > Hello!<br>
> ><br>
> > On Fri, Jan 10, 2014 at 05:42:23PM +0530, Fasih wrote:<br>
> ><br>
> > > Hi<br>
> > ><br>
> > > RFC allows a server to respond with multiple WWW-Authenticate header (<br>
> > > <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47" target="_blank">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47</a>).<br>
> > ><br>
> > > "User agents are advised to take special care in parsing the WWW-<br>
> > > Authenticate field value as it might contain more than one challenge, or<br>
> > if<br>
> > > more than one WWW-Authenticate header field is provided, the contents of<br>
> > a<br>
> > > challenge itself can contain a comma-separated list of authentication<br>
> > > parameters."<br>
> > ><br>
> > > However nginx defines WWW-Authenticate header as an ngx_table_elt_t in<br>
> > > the ngx_http_headers_out_t struct as opposed to an ngx_array_t like other<br>
> > > allowed repeated value headers.<br>
> > ><br>
> > > Is this a bug that I should file?<br>
> ><br>
> > Have you seen this to be a problem in real life?<br>
> ><br>
> > --<br>
> > Maxim Dounin<br>
> > <a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
> ><br>
> > _______________________________________________<br>
> > nginx-devel mailing list<br>
> > <a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
> > <a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
> ><br>
<br>
> _______________________________________________<br>
> nginx-devel mailing list<br>
> <a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
<br>
<br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
<br>
_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
</div></div></blockquote></div><br></div>