File tree Expand file tree Collapse file tree 4 files changed +30
-1
lines changed
Expand file tree Collapse file tree 4 files changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -419,7 +419,9 @@ public String generate(String source) {
419419 }
420420 }
421421 if (AnalyticsUtils .token != null ) {
422- url = (new StringBuilder ()).append (url ).append (AnalyticsUtils .analyticsPrefix ).append (AnalyticsUtils .token ).toString ();
422+ if (!AnalyticsUtils .checkIfQueryParamExist (url )) {
423+ url = (new StringBuilder ()).append (url ).append (AnalyticsUtils .analyticsPrefix ).append (AnalyticsUtils .token ).toString ();
424+ }
423425 }
424426 return url ;
425427 }
Original file line number Diff line number Diff line change 11package com .cloudinary .utils ;
22
3+ import java .net .MalformedURLException ;
4+ import java .net .URL ;
5+
36public class AnalyticsUtils {
47 public static String analyticsPrefix = "?_a=" ;
58 public static String token = null ;
9+
10+ public static Boolean checkIfQueryParamExist (String urlString ) {
11+ try {
12+ URL url = new URL (urlString );
13+ if (url .getQuery () == null ) {
14+ return false ;
15+ }
16+ } catch (MalformedURLException e ) {
17+ return true ;
18+ }
19+ return true ;
20+ }
621}
Original file line number Diff line number Diff line change 11package com .cloudinary ;
22
3+ import com .cloudinary .utils .AnalyticsUtils ;
34import org .hamcrest .Matchers ;
45import org .junit .Before ;
56import org .junit .Rule ;
@@ -92,6 +93,15 @@ public void testAuthenticatedUrl() {
9293
9394 }
9495
96+ @ Test
97+ public void testUrlAnalyticsWithQueryParams () {
98+ cloudinary .config .privateCdn = true ;
99+ String url = cloudinary .url ().signed (true ).type ("authenticated" ).generate ("test" );
100+ assertEquals (url ,"http://test123-res.cloudinary.com/image/authenticated/test?__cld_token__=st=11111111~exp=11111411~hmac=735a49389a72ac0b90d1a84ac5d43facd1a9047f153b39e914747ef6ed195e53" );
101+ AnalyticsUtils .token = null ;
102+ cloudinary .config .privateCdn = false ;
103+ }
104+
95105 @ Test
96106 public void testConfiguration () {
97107 cloudinary = new Cloudinary ("cloudinary://a:b@test123?load_strategies=false&auth_token[key]=aabbcc112233&auth_token[duration]=200" );
Original file line number Diff line number Diff line change @@ -1470,4 +1470,6 @@ public void testUrlWithNoAnalytics() {
14701470 String url = cloudinary .url ().generate ("test" );
14711471 assertEquals (url ,"http://res.cloudinary.com/test123/image/upload/test" );
14721472 }
1473+
1474+
14731475}
You can’t perform that action at this time.
0 commit comments