25
25
import okhttp3 .Request ;
26
26
27
27
import java .io .IOException ;
28
+ import java .util .Base64 ;
28
29
import java .util .logging .Logger ;
29
30
30
31
/**
31
32
* Retrieves, stores, and refreshes IAM tokens.
32
33
*/
33
34
public class IamTokenManager {
35
+ private static String iamClientId = null ;
36
+ private static String iamSecret = null ;
37
+
34
38
private String userManagedAccessToken ;
35
39
private String apiKey ;
36
40
private String url ;
@@ -39,7 +43,7 @@ public class IamTokenManager {
39
43
private static final Logger LOG = Logger .getLogger (IamTokenManager .class .getName ());
40
44
private static final String ERROR_MESSAGE = "Error getting IAM token from API" ;
41
45
private static final String DEFAULT_AUTHORIZATION = "Basic Yng6Yng=" ;
42
- private static final String DEFAULT_IAM_URL = "https://iam.bluemix.net /identity/token" ;
46
+ private static final String DEFAULT_IAM_URL = "https://iam.cloud.ibm.com /identity/token" ;
43
47
private static final String GRANT_TYPE = "grant_type" ;
44
48
private static final String REQUEST_GRANT_TYPE = "urn:ibm:params:oauth:grant-type:apikey" ;
45
49
private static final String REFRESH_GRANT_TYPE = "refresh_token" ;
@@ -100,7 +104,7 @@ private String requestToken() {
100
104
RequestBuilder builder = RequestBuilder .post (RequestBuilder .constructHttpUrl (url , new String [0 ]));
101
105
102
106
builder .header (HttpHeaders .CONTENT_TYPE , HttpMediaType .APPLICATION_FORM_URLENCODED );
103
- builder .header (HttpHeaders .AUTHORIZATION , DEFAULT_AUTHORIZATION );
107
+ builder .header (HttpHeaders .AUTHORIZATION , getAuthorizationHeaderValue () );
104
108
105
109
FormBody formBody = new FormBody .Builder ()
106
110
.add (GRANT_TYPE , REQUEST_GRANT_TYPE )
@@ -122,7 +126,7 @@ private String refreshToken() {
122
126
RequestBuilder builder = RequestBuilder .post (RequestBuilder .constructHttpUrl (url , new String [0 ]));
123
127
124
128
builder .header (HttpHeaders .CONTENT_TYPE , HttpMediaType .APPLICATION_FORM_URLENCODED );
125
- builder .header (HttpHeaders .AUTHORIZATION , DEFAULT_AUTHORIZATION );
129
+ builder .header (HttpHeaders .AUTHORIZATION , getAuthorizationHeaderValue () );
126
130
127
131
FormBody formBody = new FormBody .Builder ()
128
132
.add (GRANT_TYPE , REFRESH_GRANT_TYPE )
@@ -218,4 +222,31 @@ public void run() {
218
222
}
219
223
return returnToken [0 ];
220
224
}
225
+
226
+ public static String getIamClientId () {
227
+ return iamClientId ;
228
+ }
229
+
230
+ public static void setIamClientId (String iamClientId ) {
231
+ IamTokenManager .iamClientId = iamClientId ;
232
+ }
233
+
234
+ public static String getIamSecret () {
235
+ return iamSecret ;
236
+ }
237
+
238
+ public static void setIamSecret (String iamSecret ) {
239
+ IamTokenManager .iamSecret = iamSecret ;
240
+ }
241
+
242
+ public static String getAuthorizationHeaderValue () {
243
+ String result ;
244
+ if (getIamClientId () != null && getIamSecret () != null ) {
245
+ String s = getIamClientId () + ":" + getIamSecret ();
246
+ result = "Basic " + Base64 .getEncoder ().encodeToString (s .getBytes ());
247
+ } else {
248
+ result = DEFAULT_AUTHORIZATION ;
249
+ }
250
+ return result ;
251
+ }
221
252
}
0 commit comments