Christian Schröder created JCLOUDS-840:
------------------------------------------

             Summary: jclouds-aws-s3 blob signing fails together with 
jclouds-joda
                 Key: JCLOUDS-840
                 URL: https://issues.apache.org/jira/browse/JCLOUDS-840
             Project: jclouds
          Issue Type: Bug
          Components: jclouds-drivers
    Affects Versions: 1.8.1
         Environment: Mac OS X 10.9.5, Oracle JDK 1.8.0_25
            Reporter: Christian Schröder
            Priority: Trivial


Joda-time does not parse symbolic timezone names like 'GMT' due to their 
non-standardization and ambiguity (e.g. PST is Pacific Standard Time and 
Pakistan Standard Time).

The AWSS3BlobRequestSigner uses timeStampProvider.get() (Line 89) to generate a 
date string and uses dateService.rfc1123DateParse (Line 91) on this string.
timeStampProvider.get uses dateService.rfc822DateFormat() to generate a 
timestamp.

When the JodaDateServiceModule is used this will fail. With the 
JodaDateServiceModule the timeStampProvider.get() generates a timestamp with 
GMT timezone indicator.
But the AWSS3BlobRequestSigner uses rfc1123DateParse which tries to parse the 
time zone. 
According to RFC1123 a timestamp SHOULD use time offsets instead of symbolic 
names, so it is not clearly wrong.

Anyways one fix would be for AWSS3BlobRequestSigner to use rfc822DateParse (it 
could fallback to rfc1123 for compatibility). The timestamp is used for the 
HTTP Date header which must be set in GMT anyway and recommended to follow this 
rfc822 format http://tools.ietf.org/html/rfc7231#section-7.1.1.2



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to