You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Christian Schröder (JIRA)" <ji...@apache.org> on 2015/03/06 08:37:38 UTC

[jira] [Created] (JCLOUDS-840) jclouds-aws-s3 blob signing fails together with jclouds-joda

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)