@@ -51,11 +51,11 @@ private static String generateUrl(
51
51
}
52
52
String newUrl =null ;
53
53
if (null !=src ){
54
- newUrl =buildFullUrl (src ,queryParameters ,transformation ,transformationPosition ,signed ,expireSeconds );
54
+ newUrl =buildFullUrl (src ,queryParameters ,transformation ,transformationPosition ,signed ,expireSeconds , config . getPrivateKey (), urlEndpoint );
55
55
}
56
56
else {
57
57
if ("query" .equalsIgnoreCase (transformationPosition )){
58
- newUrl =buildFullUrl (urlEndpoint +(path .charAt (0 )=='/' ?path .substring (1 ,path .length ()):path ),queryParameters ,transformation ,transformationPosition ,signed ,expireSeconds );
58
+ newUrl =buildFullUrl (urlEndpoint +(path .charAt (0 )=='/' ?path .substring (1 ,path .length ()):path ),queryParameters ,transformation ,transformationPosition ,signed ,expireSeconds , config . getPrivateKey (), urlEndpoint );
59
59
}
60
60
else {
61
61
newUrl = buildPathUrl (path .charAt (0 )=='/' ?path :"/" +path , urlEndpoint , queryParameters , transformation , transformationPosition , signed , expireSeconds , config .getPrivateKey ());
@@ -110,13 +110,7 @@ private static String buildPathUrl(String path, String urlEndpoint, Map<String,
110
110
queryMaker .get (),null );
111
111
112
112
if (signed ){
113
- long expiryTimestamp = DEFAULT_TIMESTAMP ;
114
- if (expireSeconds > 0 ){
115
- expiryTimestamp = ((Calendar .getInstance ().getTimeInMillis ()/1000 )+expireSeconds );
116
- String signature = signUrl (privateKey ,tmpUri .toString (),urlEndpoint ,expiryTimestamp );
117
- queryMaker .put ("ik-s=" + signature );
118
- queryMaker .put ("ik-t=" + expiryTimestamp );
119
- }
113
+ sign (urlEndpoint , expireSeconds , privateKey , queryMaker , tmpUri );
120
114
}
121
115
122
116
newUri = new URI (baseUrl .getScheme (),baseUrl .getUserInfo (),baseUrl .getHost (),baseUrl .getPort (),
@@ -129,7 +123,7 @@ private static String buildPathUrl(String path, String urlEndpoint, Map<String,
129
123
return newUri .toString ();
130
124
}
131
125
132
- private static String buildFullUrl (String src , Map <String , String > queryParameters , List <Map <String , String >> transformation , String transformationPosition , boolean signed , long expireSeconds ) {
126
+ private static String buildFullUrl (String src , Map <String , String > queryParameters , List <Map <String , String >> transformation , String transformationPosition , boolean signed , long expireSeconds , String privateKey , String urlEndpoint ) {
133
127
StringBuilder tr = new StringBuilder ("" );
134
128
if (transformation .size ()>0 ) {
135
129
tr .append ("tr=" );
@@ -178,6 +172,15 @@ private static String buildFullUrl(String src, Map<String, String> queryParamete
178
172
URI newUri = null ;
179
173
try {
180
174
String newPath =baseUrl .getPath ();
175
+ URI tmpUri = new URI (baseUrl .getScheme (),baseUrl .getUserInfo (),baseUrl .getHost (),baseUrl .getPort (),
176
+ newPath ,
177
+ queryMaker .get (),null );
178
+
179
+
180
+ if (signed ){
181
+ sign (urlEndpoint , expireSeconds , privateKey , queryMaker , tmpUri );
182
+ }
183
+
181
184
newUri = new URI (baseUrl .getScheme (),baseUrl .getUserInfo (),baseUrl .getHost (),baseUrl .getPort (),
182
185
newPath ,
183
186
queryMaker .get (),null );
@@ -187,6 +190,16 @@ private static String buildFullUrl(String src, Map<String, String> queryParamete
187
190
return newUri .toString ();
188
191
}
189
192
193
+ private static void sign (String urlEndpoint , long expireSeconds , String privateKey , QueryMaker queryMaker , URI tmpUri ) {
194
+ long expiryTimestamp = DEFAULT_TIMESTAMP ;
195
+ if (expireSeconds > 0 ){
196
+ expiryTimestamp = ((Calendar .getInstance ().getTimeInMillis ()/1000 )+ expireSeconds );
197
+ String signature = signUrl (privateKey , tmpUri .toString (), urlEndpoint ,expiryTimestamp );
198
+ queryMaker .put ("ik-s=" + signature );
199
+ queryMaker .put ("ik-t=" + expiryTimestamp );
200
+ }
201
+ }
202
+
190
203
public static String signUrl (String privateKey , String url , String urlEndpoint , long expiryTimestamp ){
191
204
if (expiryTimestamp < 1 ){
192
205
expiryTimestamp = DEFAULT_TIMESTAMP ;
0 commit comments