@@ -21,6 +21,7 @@ public class Configuration {
2121 public final static String USER_AGENT = "cld-android-" + VERSION ;
2222 public static final boolean DEFAULT_IS_LONG_SIGNATURE = false ;
2323 public static final SignatureAlgorithm DEFAULT_SIGNATURE_ALGORITHM = SignatureAlgorithm .SHA1 ;
24+ public static final int DEFAULT_SIGNATURE_VERSION = 2 ;
2425
2526 private static final String CONFIG_PROP_SIGNATURE_ALGORITHM = "signature_algorithm" ;
2627
@@ -48,6 +49,7 @@ public class Configuration {
4849 public boolean forceVersion = true ;
4950 public boolean longUrlSignature = DEFAULT_IS_LONG_SIGNATURE ;
5051 public SignatureAlgorithm signatureAlgorithm = DEFAULT_SIGNATURE_ALGORITHM ;
52+ public int signatureVersion = DEFAULT_SIGNATURE_VERSION ;
5153 public String oauthToken = null ;
5254 public Boolean analytics ;
5355 public Configuration () {
@@ -75,6 +77,7 @@ private Configuration(
7577 boolean forceVersion ,
7678 boolean longUrlSignature ,
7779 SignatureAlgorithm signatureAlgorithm ,
80+ int signatureVersion ,
7881 String oauthToken ,
7982 boolean analytics ) {
8083 this .cloudName = cloudName ;
@@ -98,6 +101,7 @@ private Configuration(
98101 this .forceVersion = forceVersion ;
99102 this .longUrlSignature = longUrlSignature ;
100103 this .signatureAlgorithm = signatureAlgorithm ;
104+ this .signatureVersion = signatureVersion ;
101105 this .oauthToken = oauthToken ;
102106 this .analytics = analytics ;
103107 }
@@ -140,6 +144,7 @@ public void update(Map config) {
140144 }
141145 this .longUrlSignature = ObjectUtils .asBoolean (config .get ("long_url_signature" ), DEFAULT_IS_LONG_SIGNATURE );
142146 this .signatureAlgorithm = SignatureAlgorithm .valueOf (ObjectUtils .asString (config .get (CONFIG_PROP_SIGNATURE_ALGORITHM ), DEFAULT_SIGNATURE_ALGORITHM .name ()));
147+ this .signatureVersion = ObjectUtils .asInteger (config .get ("signature_version" ), DEFAULT_SIGNATURE_VERSION );
143148 this .oauthToken = (String ) config .get ("oauth_token" );
144149
145150 }
@@ -173,6 +178,7 @@ public Map<String, Object> asMap() {
173178 map .put ("properties" , new HashMap <String ,Object >(properties ));
174179 map .put ("long_url_signature" , longUrlSignature );
175180 map .put (CONFIG_PROP_SIGNATURE_ALGORITHM , signatureAlgorithm .toString ());
181+ map .put ("signature_version" , signatureVersion );
176182 map .put ("oauth_token" , oauthToken );
177183 map .put ("analytics" , analytics );
178184 return map ;
@@ -206,6 +212,7 @@ public Configuration(Configuration other) {
206212 this .properties .putAll (other .properties );
207213 this .longUrlSignature = other .longUrlSignature ;
208214 this .signatureAlgorithm = other .signatureAlgorithm ;
215+ this .signatureVersion = other .signatureVersion ;
209216 this .oauthToken = other .oauthToken ;
210217 this .analytics = other .analytics ;
211218 }
@@ -320,6 +327,7 @@ public static class Builder {
320327 private boolean forceVersion = true ;
321328 private boolean longUrlSignature = DEFAULT_IS_LONG_SIGNATURE ;
322329 private SignatureAlgorithm signatureAlgorithm = DEFAULT_SIGNATURE_ALGORITHM ;
330+ private int signatureVersion = DEFAULT_SIGNATURE_VERSION ;
323331 private String oauthToken = null ;
324332 private boolean analytics ;
325333
@@ -360,6 +368,7 @@ public Configuration build() {
360368 forceVersion ,
361369 longUrlSignature ,
362370 signatureAlgorithm ,
371+ signatureVersion ,
363372 oauthToken ,
364373 analytics );
365374 configuration .clientHints = clientHints ;
@@ -500,6 +509,11 @@ public Builder setSignatureAlgorithm(SignatureAlgorithm signatureAlgorithm) {
500509 return this ;
501510 }
502511
512+ public Builder setSignatureVersion (int signatureVersion ) {
513+ this .signatureVersion = signatureVersion ;
514+ return this ;
515+ }
516+
503517 public Builder setOAuthToken (String oauthToken ) {
504518 this .oauthToken = oauthToken ;
505519 return this ;
@@ -535,6 +549,7 @@ public Builder from(Configuration other) {
535549 this .forceVersion = other .forceVersion ;
536550 this .longUrlSignature = other .longUrlSignature ;
537551 this .signatureAlgorithm = other .signatureAlgorithm ;
552+ this .signatureVersion = other .signatureVersion ;
538553 this .oauthToken = other .oauthToken ;
539554 this .analytics = other .analytics ;
540555 return this ;
0 commit comments