Skip to content

Commit 7bf86d9

Browse files
authored
fix(android): fix an issue with issuer https checks resulting in an invalid ID token error (#649)
based on the documentation in openid/AppAuth-Android when allowing http requests `setSkipIssuerHttpsCheck` needs to be called. See https://github.com/openid/AppAuth-Android#issues-with-id-token-validation and openid/AppAuth-Android#650
1 parent 51cfc6e commit 7bf86d9

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public void register(
158158
) {
159159
this.parseHeaderMap(headers);
160160
final ConnectionBuilder builder = createConnectionBuilder(dangerouslyAllowInsecureHttpRequests, this.registrationRequestHeaders);
161-
final AppAuthConfiguration appAuthConfiguration = this.createAppAuthConfiguration(builder);
161+
final AppAuthConfiguration appAuthConfiguration = this.createAppAuthConfiguration(builder, dangerouslyAllowInsecureHttpRequests);
162162
final HashMap<String, String> additionalParametersMap = MapUtil.readableMapToHashMap(additionalParameters);
163163

164164
// when serviceConfiguration is provided, we don't need to hit up the OpenID well-known id endpoint
@@ -229,7 +229,7 @@ public void authorize(
229229
) {
230230
this.parseHeaderMap(headers);
231231
final ConnectionBuilder builder = createConnectionBuilder(dangerouslyAllowInsecureHttpRequests, this.authorizationRequestHeaders);
232-
final AppAuthConfiguration appAuthConfiguration = this.createAppAuthConfiguration(builder);
232+
final AppAuthConfiguration appAuthConfiguration = this.createAppAuthConfiguration(builder, dangerouslyAllowInsecureHttpRequests);
233233
final HashMap<String, String> additionalParametersMap = MapUtil.readableMapToHashMap(additionalParameters);
234234

235235
// store args in private fields for later use in onActivityResult handler
@@ -317,7 +317,7 @@ public void refresh(
317317
) {
318318
this.parseHeaderMap(headers);
319319
final ConnectionBuilder builder = createConnectionBuilder(dangerouslyAllowInsecureHttpRequests, this.tokenRequestHeaders);
320-
final AppAuthConfiguration appAuthConfiguration = createAppAuthConfiguration(builder);
320+
final AppAuthConfiguration appAuthConfiguration = createAppAuthConfiguration(builder, dangerouslyAllowInsecureHttpRequests);
321321
final HashMap<String, String> additionalParametersMap = MapUtil.readableMapToHashMap(additionalParameters);
322322

323323
if (clientSecret != null) {
@@ -428,7 +428,8 @@ public void onActivityResult(Activity activity, int requestCode, int resultCode,
428428

429429
final Promise authorizePromise = this.promise;
430430
final AppAuthConfiguration configuration = createAppAuthConfiguration(
431-
createConnectionBuilder(this.dangerouslyAllowInsecureHttpRequests, this.tokenRequestHeaders)
431+
createConnectionBuilder(this.dangerouslyAllowInsecureHttpRequests, this.tokenRequestHeaders),
432+
this.dangerouslyAllowInsecureHttpRequests
432433
);
433434

434435
AuthorizationService authService = new AuthorizationService(this.reactContext, configuration);
@@ -504,7 +505,7 @@ private void registerWithConfiguration(
504505
if (tokenEndpointAuthMethod != null) {
505506
registrationRequestBuilder.setTokenEndpointAuthenticationMethod(tokenEndpointAuthMethod);
506507
}
507-
508+
508509
RegistrationRequest registrationRequest = registrationRequestBuilder.build();
509510

510511
AuthorizationService.RegistrationResponseCallback registrationResponseCallback = new AuthorizationService.RegistrationResponseCallback() {
@@ -730,10 +731,14 @@ private List<Uri> arrayToUriList(ReadableArray array) {
730731
/*
731732
* Create an App Auth configuration using the provided connection builder
732733
*/
733-
private AppAuthConfiguration createAppAuthConfiguration(ConnectionBuilder connectionBuilder) {
734+
private AppAuthConfiguration createAppAuthConfiguration(
735+
ConnectionBuilder connectionBuilder,
736+
Boolean skipIssuerHttpsCheck
737+
) {
734738
return new AppAuthConfiguration
735739
.Builder()
736740
.setConnectionBuilder(connectionBuilder)
741+
.setSkipIssuerHttpsCheck(skipIssuerHttpsCheck)
737742
.build();
738743
}
739744

0 commit comments

Comments
 (0)