[ 
https://issues.apache.org/jira/browse/OLTU-131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Antonio Sanso closed OLTU-131.
------------------------------


> Signature parsing from access token is broken for character encodings that 
> are not single-byte
> ----------------------------------------------------------------------------------------------
>
>                 Key: OLTU-131
>                 URL: https://issues.apache.org/jira/browse/OLTU-131
>             Project: Apache Oltu
>          Issue Type: Bug
>          Components: jose-jws, oauth2-jwt
>    Affects Versions: oauth2-1.0.0
>            Reporter: Andrei Dulvac
>            Assignee: Antonio Sanso
>            Priority: Critical
>              Labels: PatchAvailable
>             Fix For: oauth2-1.0.0
>
>         Attachments: signature_utf8.patch
>
>
> If you use the oltu JWSReader with a character encoding that is not 
> single-byte, like UTF-8, the signature is parsed incorrectly. 
> This is because the signature, according to the JWT spec, is a base64url 
> encoded byte array (any byte, generated by HMAC256), which is now decoded 
> directly into a String. If the character encoding is set to UTF-8 
> (-Dfile.encoding=UTF-8), the decoded signature will be a different byte 
> array, usually longer. If the character encoding used is something 
> single-byte, like MacRoman, this happens to work.
> From the JWS spec:
> {quote} 
> Create the desired serialized output.  The JWS Compact Serialization of this 
> result is BASE64URL(UTF8(JWS Protected Header)) || '.' || BASE64URL(JWS 
> Payload) || '.' || BASE64URL(JWS Signature). 
> {quote}
> The solution is to change the JWS reader to store the signature as base64url 
> and compare that.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to