Skip to content

Commit 9a31006

Browse files
authored
Merge pull request #133 from FormidableLabs/bugfix/empty-scope-android
Allow empty scopes on Android
2 parents 80ab545 + e5c15ae commit 9a31006

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

android/src/main/java/com/reactlibrary/RNAppAuthModule.java

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ public void authorize(
6767
final Boolean dangerouslyAllowInsecureHttpRequests,
6868
final Promise promise
6969
) {
70-
71-
final String scopesString = this.arrayToString(scopes);
7270
final ConnectionBuilder builder = createConnectionBuilder(dangerouslyAllowInsecureHttpRequests);
7371
final AppAuthConfiguration appAuthConfiguration = this.createAppAuthConfiguration(builder);
7472
final HashMap<String, String> additionalParametersMap = MapUtils.readableMapToHashMap(additionalParameters);
@@ -90,7 +88,7 @@ public void authorize(
9088
createAuthorizationServiceConfiguration(serviceConfiguration),
9189
appAuthConfiguration,
9290
clientId,
93-
scopesString,
91+
scopes,
9492
redirectUrl,
9593
additionalParametersMap
9694
);
@@ -114,7 +112,7 @@ public void onFetchConfigurationCompleted(
114112
fetchedConfiguration,
115113
appAuthConfiguration,
116114
clientId,
117-
scopesString,
115+
scopes,
118116
redirectUrl,
119117
additionalParametersMap
120118
);
@@ -142,7 +140,6 @@ public void refresh(
142140
final Boolean dangerouslyAllowInsecureHttpRequests,
143141
final Promise promise
144142
) {
145-
final String scopesString = this.arrayToString(scopes);
146143
final ConnectionBuilder builder = createConnectionBuilder(dangerouslyAllowInsecureHttpRequests);
147144
final AppAuthConfiguration appAuthConfiguration = createAppAuthConfiguration(builder);
148145
final HashMap<String, String> additionalParametersMap = MapUtils.readableMapToHashMap(additionalParameters);
@@ -163,7 +160,7 @@ public void refresh(
163160
appAuthConfiguration,
164161
refreshToken,
165162
clientId,
166-
scopesString,
163+
scopes,
167164
redirectUrl,
168165
additionalParametersMap,
169166
clientSecret,
@@ -191,7 +188,7 @@ public void onFetchConfigurationCompleted(
191188
appAuthConfiguration,
192189
refreshToken,
193190
clientId,
194-
scopesString,
191+
scopes,
195192
redirectUrl,
196193
additionalParametersMap,
197194
clientSecret,
@@ -258,11 +255,17 @@ private void authorizeWithConfiguration(
258255
final AuthorizationServiceConfiguration serviceConfiguration,
259256
final AppAuthConfiguration appAuthConfiguration,
260257
final String clientId,
261-
final String scopesString,
258+
final ReadableArray scopes,
262259
final String redirectUrl,
263260
final Map<String, String> additionalParametersMap
264261
) {
265262

263+
String scopesString = null;
264+
265+
if (scopes != null) {
266+
scopesString = this.arrayToString(scopes);
267+
}
268+
266269
final Context context = this.reactContext;
267270
final Activity currentActivity = getCurrentActivity();
268271

@@ -272,8 +275,12 @@ private void authorizeWithConfiguration(
272275
clientId,
273276
ResponseTypeValues.CODE,
274277
Uri.parse(redirectUrl)
275-
)
276-
.setScope(scopesString);
278+
);
279+
280+
if (scopesString != null) {
281+
authRequestBuilder.setScope(scopesString);
282+
}
283+
277284

278285
if (additionalParametersMap != null) {
279286
// handle additional parameters separately to avoid exceptions from AppAuth
@@ -316,24 +323,33 @@ private void refreshWithConfiguration(
316323
final AppAuthConfiguration appAuthConfiguration,
317324
final String refreshToken,
318325
final String clientId,
319-
final String scopesString,
326+
final ReadableArray scopes,
320327
final String redirectUrl,
321328
final Map<String, String> additionalParametersMap,
322329
final String clientSecret,
323330
final Promise promise
324331
) {
325332

333+
String scopesString = null;
334+
335+
if (scopes != null) {
336+
scopesString = this.arrayToString(scopes);
337+
}
338+
326339
final Context context = this.reactContext;
327340

328341
TokenRequest.Builder tokenRequestBuilder =
329342
new TokenRequest.Builder(
330343
serviceConfiguration,
331344
clientId
332345
)
333-
.setScope(scopesString)
334346
.setRefreshToken(refreshToken)
335347
.setRedirectUri(Uri.parse(redirectUrl));
336348

349+
if (scopesString != null) {
350+
tokenRequestBuilder.setScope(scopesString);
351+
}
352+
337353
if (!additionalParametersMap.isEmpty()) {
338354
tokenRequestBuilder.setAdditionalParameters(additionalParametersMap);
339355
}

0 commit comments

Comments
 (0)