You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sergey Beryozkin (JIRA)" <ji...@apache.org> on 2009/10/09 11:46:31 UTC

[jira] Commented: (CXF-2462) CXF REST is not parsing the header value correctly if a comma is specified in a parameter value.

    [ https://issues.apache.org/jira/browse/CXF-2462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12763941#action_12763941 ] 

Sergey Beryozkin commented on CXF-2462:
---------------------------------------

Will try to fix it these weekends, thanks.
The workaround is to use a CXF specific MessageContext, then context.get(Message.REQUEST_HEADERS) and cast a returned Object to Map<String, List<String>> and then manually parse map.get("xm-my-header").get(0), at the moment the underlying HTTP Request impl will return the whole sequence as a single value




> 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.