Cache-Control header provider won't emit the right values if multiple
privateFields or noCacheFields are provided
-----------------------------------------------------------------------------------------------------------------
Key: CXF-3775
URL: https://issues.apache.org/jira/browse/CXF-3775
Project: CXF
Issue Type: Bug
Components: JAX-RS
Reporter: Dobes Vandermeer
Priority: Trivial
I was recently basing some code on the
org.apache.cxf.jaxrs.impl.CacheControlHeaderProvider and I noticed that it's
handling of the no-cache and private fields isn't quite right.
Current if you have two private fields you would get output like:
Cache-Control: private="Field1","Field2"
If you then parse this back into a CacheControl object it would be interpreted
as one private field and an extension directive.
Based on my interpretation of the HTTP 1.1 spec sections:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.1 where 1#field is
defined as a comma seperated list of one or more fields and
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 where it shows
that the list of fields is a optional =, double quote, and a list of fields,
and another double quote.
I think the correct output should be:
Cache-Control: private="Field1, Field2"
And of course when parsing a naive splitting based on comma won't work because
you have to ignore commas inside the quotes.
I don't think this is a much-used feature of the Cache-Control system or
someone would already have reported this problem.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira