Skip to content

Commit 6f8f49c

Browse files
committed
Refactor UnsafeConnectionBuilder functionality
1 parent 9d82377 commit 6f8f49c

File tree

2 files changed

+23
-28
lines changed

2 files changed

+23
-28
lines changed

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

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.facebook.react.bridge.ReadableMap;
1818
import com.facebook.react.bridge.ReadableMapKeySetIterator;
1919
import com.facebook.react.bridge.WritableMap;
20+
import com.reactlibrary.utils.UnsafeConnectionBuilder;
2021

2122
import net.openid.appauth.AppAuthConfiguration;
2223
import net.openid.appauth.AuthorizationException;
@@ -108,16 +109,22 @@ private HashMap<String, String> additionalParametersToMap(ReadableMap additional
108109
return additionalParametersHash;
109110
}
110111

111-
private ConnectionBuilder createConnectionBuilder(Boolean allowInsecureConnections) {
112+
private AppAuthConfiguration createAppAuthConfiguration(ConnectionBuilder connectionBuilder) {
113+
return new AppAuthConfiguration
114+
.Builder()
115+
.setConnectionBuilder(connectionBuilder)
116+
.build();
117+
}
112118

119+
private ConnectionBuilder createConnectionBuilder(Boolean allowInsecureConnections) {
113120
if (allowInsecureConnections.equals(true)) {
114-
return ConnectionBuilderForTesting.INSTANCE;
121+
return UnsafeConnectionBuilder.INSTANCE;
115122
}
116123

117124
return DefaultConnectionBuilder.INSTANCE;
118125
}
119126

120-
static Uri buildConfigurationUriFromIssuer(Uri openIdConnectIssuerUri) {
127+
private Uri buildConfigurationUriFromIssuer(Uri openIdConnectIssuerUri) {
121128
return openIdConnectIssuerUri.buildUpon()
122129
.appendPath(AuthorizationServiceConfiguration.WELL_KNOWN_PATH)
123130
.appendPath(AuthorizationServiceConfiguration.OPENID_CONFIGURATION_RESOURCE)
@@ -136,13 +143,16 @@ public void authorize(
136143
) {
137144

138145
final Context context = this.reactContext;
146+
147+
// store args in private fields for later use in onActivityResult handler
139148
this.promise = promise;
140149
this.dangerouslyAllowInsecureHttpRequests = dangerouslyAllowInsecureHttpRequests;
141-
final Activity currentActivity = getCurrentActivity();
142150

151+
final Activity currentActivity = getCurrentActivity();
143152
final String scopesString = this.arrayToString(scopes);
144153
final Uri issuerUri = Uri.parse(issuer);
145154
final ConnectionBuilder builder = createConnectionBuilder(dangerouslyAllowInsecureHttpRequests);
155+
final AppAuthConfiguration configuration = this.createAppAuthConfiguration(builder);
146156

147157
AuthorizationServiceConfiguration.fetchFromUrl(
148158
buildConfigurationUriFromIssuer(issuerUri),
@@ -169,12 +179,6 @@ public void onFetchConfigurationCompleted(
169179
authRequestBuilder.setAdditionalParameters(additionalParametersToMap(additionalParameters));
170180
}
171181

172-
AppAuthConfiguration configuration =
173-
new AppAuthConfiguration
174-
.Builder()
175-
.setConnectionBuilder(builder)
176-
.build();
177-
178182
AuthorizationRequest authRequest = authRequestBuilder.build();
179183
AuthorizationService authService = new AuthorizationService(context, configuration);
180184
Intent authIntent = authService.getAuthorizationRequestIntent(authRequest);
@@ -202,7 +206,9 @@ public void refresh(
202206
final String scopesString = this.arrayToString(scopes);
203207
final Uri issuerUri = Uri.parse(issuer);
204208
final ConnectionBuilder builder = createConnectionBuilder(dangerouslyAllowInsecureHttpRequests);
209+
final AppAuthConfiguration configuration = createAppAuthConfiguration(builder);
205210

211+
// store setting in private field for later use in onActivityResult handler
206212
this.dangerouslyAllowInsecureHttpRequests = dangerouslyAllowInsecureHttpRequests;
207213

208214
AuthorizationServiceConfiguration.fetchFromUrl(
@@ -231,14 +237,7 @@ public void onFetchConfigurationCompleted(
231237

232238
TokenRequest tokenRequest = tokenRequestBuilder.build();
233239

234-
235-
final AppAuthConfiguration configuration =
236-
new AppAuthConfiguration
237-
.Builder()
238-
.setConnectionBuilder(createConnectionBuilder(dangerouslyAllowInsecureHttpRequests))
239-
.build();
240240
AuthorizationService authService = new AuthorizationService(context, configuration);
241-
242241
authService.performTokenRequest(tokenRequest, new AuthorizationService.TokenResponseCallback() {
243242
@Override
244243
public void onTokenRequestCompleted(@Nullable TokenResponse response, @Nullable AuthorizationException ex) {
@@ -267,15 +266,11 @@ public void onActivityResult(Activity activity, int requestCode, int resultCode,
267266
}
268267

269268
final Promise authorizePromise = this.promise;
270-
271-
final AppAuthConfiguration configuration =
272-
new AppAuthConfiguration
273-
.Builder()
274-
.setConnectionBuilder(createConnectionBuilder(this.dangerouslyAllowInsecureHttpRequests))
275-
.build();
269+
final AppAuthConfiguration configuration = createAppAuthConfiguration(
270+
createConnectionBuilder(this.dangerouslyAllowInsecureHttpRequests)
271+
);
276272

277273
AuthorizationService authService = new AuthorizationService(this.reactContext, configuration);
278-
279274
authService.performTokenRequest(
280275
response.createTokenExchangeRequest(),
281276
new AuthorizationService.TokenResponseCallback() {

android/src/main/java/com/reactlibrary/ConnectionBuilderForTesting.java renamed to android/src/main/java/com/reactlibrary/utils/UnsafeConnectionBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.reactlibrary;
1+
package com.reactlibrary.utils;
22

33
/*
44
* Copyright 2016 The AppAuth for Android Authors. All Rights Reserved.
@@ -45,9 +45,9 @@
4545
* CODE*. It is intended to facilitate easier testing of AppAuth against development servers
4646
* only.
4747
*/
48-
public final class ConnectionBuilderForTesting implements ConnectionBuilder {
48+
public final class UnsafeConnectionBuilder implements ConnectionBuilder {
4949

50-
public static final ConnectionBuilderForTesting INSTANCE = new ConnectionBuilderForTesting();
50+
public static final UnsafeConnectionBuilder INSTANCE = new UnsafeConnectionBuilder();
5151

5252
private static final String TAG = "ConnBuilder";
5353

@@ -102,7 +102,7 @@ public boolean verify(String hostname, SSLSession session) {
102102
TRUSTING_CONTEXT = initializedContext;
103103
}
104104

105-
private ConnectionBuilderForTesting() {
105+
private UnsafeConnectionBuilder() {
106106
// no need to construct new instances
107107
}
108108

0 commit comments

Comments
 (0)