CXF REST is not parsing the header value correctly if a comma is specified in a 
parameter value.
------------------------------------------------------------------------------------------------

                 Key: CXF-2462
                 URL: https://issues.apache.org/jira/browse/CXF-2462
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.2.3
         Environment: Ubuntu 9.04, Compaq 6910p, 4GB memory
            Reporter: Jerry Chabot


The RFC2616 and RFC822 states that a header is comprised of the following:

  header  = [ header-value ] *( "," [ header-value ] )
  header-value = name [ "=" [ value ] ] *( ";" [ param ] )
  param = name [ "=" [ value ] ]
  name = token
  value = token | quoted-string
  token          = 1*<any CHAR except CTLs or separators>
  separators     = "(" | ")" | "<" | ">" | "@"
                      | "," | ";" | ":" | "\" | <">
                      | "/" | "[" | "]" | "?" | "="
                      | "{" | "}" | SP | HT
 quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )
 qdtext         = <any TEXT except <">>

  The backslash character ("\") MAY be used as a single-character
  quoting mechanism only within quoted-string and comment constructs.

  quoted-pair    = "\" CHAR

Based on the above, this header should be valid

    xm-my-header : foo,bar,dogs="snoopy,bowzer";cat=garfield

My REST service defines the method parameter this in its interface as 

 @HeaderParam("xm-my-header") List<String> args

I expected CXF to pass 3 elements into the service:

[0] foo
[1] bar
[2] dogs="snoopy,bowzer"; cat=garfield

But, this is what CXF passes into the service:

[0] foo
[1] bar
[2] dogs="snoopy
[3] bowzer";cat=garfield

CFX is parsing the header value using the comma as a delimiter. But, it is 
ignoring the fact that the value may be within a quoted-string. 


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to