Skip to content

Commit ea9a45f

Browse files
authored
fix(API): Support for auth api oidc provider (#842)
1 parent 62946da commit ea9a45f

27 files changed

+256
-30
lines changed

Amplify.xcodeproj/project.pbxproj

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@
135135
2CFB61C7E80D065C0A885A2F /* Pods_Amplify_AWSPluginsCore_AWSPluginsTestConfigs_AWSPluginsTestCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5363CAF9EFAA822FED56808 /* Pods_Amplify_AWSPluginsCore_AWSPluginsTestConfigs_AWSPluginsTestCommon.framework */; };
136136
3263D332138415AF42E64FF7 /* Pods_AmplifyTestApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDC7F1C368154B364CB74742 /* Pods_AmplifyTestApp.framework */; };
137137
6B33896823AAACC900561E5B /* ReachabilityUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B33896723AAACC900561E5B /* ReachabilityUpdate.swift */; };
138+
6B50C917253E2AD9007B16DD /* AmplifyAPICategory+AuthProviderFactoryBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B50C916253E2AD9007B16DD /* AmplifyAPICategory+AuthProviderFactoryBehavior.swift */; };
139+
6B50C91A253E2B16007B16DD /* APIAuthProviderFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B50C919253E2B16007B16DD /* APIAuthProviderFactory.swift */; };
140+
6B50C91C253E2B57007B16DD /* APICategoryAuthProviderFactoryBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B50C91B253E2B57007B16DD /* APICategoryAuthProviderFactoryBehavior.swift */; };
138141
6B767FB723AC092800C683ED /* AmplifyAPICategory+ReachabilityBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B767FB623AC092800C683ED /* AmplifyAPICategory+ReachabilityBehavior.swift */; };
139142
6B767FB923AC0A0D00C683ED /* APICategoryReachabilityBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B767FB823AC0A0D00C683ED /* APICategoryReachabilityBehavior.swift */; };
140143
6B9F7C5225267E1500F1F71C /* MockAWSAuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B9F7C5125267E1500F1F71C /* MockAWSAuthUser.swift */; };
@@ -855,6 +858,9 @@
855858
687B09E9348F8D29979A2404 /* Pods-Amplify-AmplifyAWSPlugins-AWSPinpointAnalyticsPlugin-AWSPinpointAnalyticsPluginTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Amplify-AmplifyAWSPlugins-AWSPinpointAnalyticsPlugin-AWSPinpointAnalyticsPluginTests.debug.xcconfig"; path = "Target Support Files/Pods-Amplify-AmplifyAWSPlugins-AWSPinpointAnalyticsPlugin-AWSPinpointAnalyticsPluginTests/Pods-Amplify-AmplifyAWSPlugins-AWSPinpointAnalyticsPlugin-AWSPinpointAnalyticsPluginTests.debug.xcconfig"; sourceTree = "<group>"; };
856859
6AF0E4775809F0866F9C44D9 /* Pods-AmplifyAWSPlugins-AWSPluginsCore-AWSS3StoragePlugin-AWSS3StoragePluginTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AmplifyAWSPlugins-AWSPluginsCore-AWSS3StoragePlugin-AWSS3StoragePluginTests.debug.xcconfig"; path = "Target Support Files/Pods-AmplifyAWSPlugins-AWSPluginsCore-AWSS3StoragePlugin-AWSS3StoragePluginTests/Pods-AmplifyAWSPlugins-AWSPluginsCore-AWSS3StoragePlugin-AWSS3StoragePluginTests.debug.xcconfig"; sourceTree = "<group>"; };
857860
6B33896723AAACC900561E5B /* ReachabilityUpdate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReachabilityUpdate.swift; sourceTree = "<group>"; };
861+
6B50C916253E2AD9007B16DD /* AmplifyAPICategory+AuthProviderFactoryBehavior.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AmplifyAPICategory+AuthProviderFactoryBehavior.swift"; sourceTree = "<group>"; };
862+
6B50C919253E2B16007B16DD /* APIAuthProviderFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIAuthProviderFactory.swift; sourceTree = "<group>"; };
863+
6B50C91B253E2B57007B16DD /* APICategoryAuthProviderFactoryBehavior.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APICategoryAuthProviderFactoryBehavior.swift; sourceTree = "<group>"; };
858864
6B767FB623AC092800C683ED /* AmplifyAPICategory+ReachabilityBehavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AmplifyAPICategory+ReachabilityBehavior.swift"; sourceTree = "<group>"; };
859865
6B767FB823AC0A0D00C683ED /* APICategoryReachabilityBehavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APICategoryReachabilityBehavior.swift; sourceTree = "<group>"; };
860866
6B9F7C5125267E1500F1F71C /* MockAWSAuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockAWSAuthUser.swift; sourceTree = "<group>"; };
@@ -1969,6 +1975,14 @@
19691975
path = Reachability;
19701976
sourceTree = "<group>";
19711977
};
1978+
6B50C918253E2AEF007B16DD /* AuthProvider */ = {
1979+
isa = PBXGroup;
1980+
children = (
1981+
6B50C919253E2B16007B16DD /* APIAuthProviderFactory.swift */,
1982+
);
1983+
path = AuthProvider;
1984+
sourceTree = "<group>";
1985+
};
19721986
6BBECD6F23ADA7C100C8DFBE /* ServiceConfiguration */ = {
19731987
isa = PBXGroup;
19741988
children = (
@@ -2705,12 +2719,14 @@
27052719
FA6BC879235F5CDB0001A882 /* ClientBehavior */ = {
27062720
isa = PBXGroup;
27072721
children = (
2722+
6B50C916253E2AD9007B16DD /* AmplifyAPICategory+AuthProviderFactoryBehavior.swift */,
27082723
FAC428A1235F80000000F221 /* AmplifyAPICategory+GraphQLBehavior.swift */,
27092724
FA249EEA24C5FE66009B3CE8 /* AmplifyAPICategory+GraphQLBehavior+Combine.swift */,
27102725
FAC428A3235F802A0000F221 /* AmplifyAPICategory+InterceptorBehavior.swift */,
27112726
6B767FB623AC092800C683ED /* AmplifyAPICategory+ReachabilityBehavior.swift */,
27122727
FAC4289F235F7F980000F221 /* AmplifyAPICategory+RESTBehavior.swift */,
27132728
FA249EE824C5FE39009B3CE8 /* AmplifyAPICategory+RESTBehavior+Combine.swift */,
2729+
6B50C91B253E2B57007B16DD /* APICategoryAuthProviderFactoryBehavior.swift */,
27142730
FAC234FC227A053D00424678 /* APICategoryBehavior.swift */,
27152731
FA6BC87A235F5D240001A882 /* APICategoryGraphQLBehavior.swift */,
27162732
FA6BC87E235F5DAE0001A882 /* APICategoryInterceptorBehavior.swift */,
@@ -2879,6 +2895,7 @@
28792895
FA6BC86C235F5AE30001A882 /* APICategory+HubPayloadEventName.swift */,
28802896
FA09B9462322CBA7000E064D /* APICategoryConfiguration.swift */,
28812897
FAC234FD227A053D00424678 /* APICategoryPlugin.swift */,
2898+
6B50C918253E2AEF007B16DD /* AuthProvider */,
28822899
FA6BC879235F5CDB0001A882 /* ClientBehavior */,
28832900
FA6BC870235F5BA00001A882 /* Error */,
28842901
FAA9FC3C23620CED0012638A /* Interceptor */,
@@ -4376,6 +4393,7 @@
43764393
95DAAB89237F13B70028544F /* IdentifyEntityMatchesResult.swift in Sources */,
43774394
FAC428A2235F80000000F221 /* AmplifyAPICategory+GraphQLBehavior.swift in Sources */,
43784395
95DAAB37237E63370028544F /* Attribute.swift in Sources */,
4396+
6B50C91C253E2B57007B16DD /* APICategoryAuthProviderFactoryBehavior.swift in Sources */,
43794397
95DAAB2D237E63370028544F /* EmotionType.swift in Sources */,
43804398
B4BD6B392370932300A1F0A7 /* PredictionsIdentifyRequest.swift in Sources */,
43814399
21409C5B2384C57D000A53C9 /* GraphQLQueryType.swift in Sources */,
@@ -4443,6 +4461,7 @@
44434461
B493E6A42453A32C00D9E521 /* AuthSocialWebUISignInOperation.swift in Sources */,
44444462
FA09B9492322CBD5000E064D /* HubCategoryConfiguration.swift in Sources */,
44454463
B9FAA1252388BE48009414B4 /* List+Model.swift in Sources */,
4464+
6B50C917253E2AD9007B16DD /* AmplifyAPICategory+AuthProviderFactoryBehavior.swift in Sources */,
44464465
FA5704CB245F58C600392C19 /* AmplifyOperation+Hub.swift in Sources */,
44474466
FAC0A2B222B4402000B50912 /* StorageCategory+ClientBehavior.swift in Sources */,
44484467
B9FAA1272388BE91009414B4 /* List+LazyLoad.swift in Sources */,
@@ -4498,6 +4517,7 @@
44984517
B9FB05F82383740D00DE1FD4 /* DataStoreStatement.swift in Sources */,
44994518
FAC23527227A053D00424678 /* LoggingCategoryClientBehavior.swift in Sources */,
45004519
FA09B92B2321A10E000E064D /* AnalyticsCategory+CategoryConfigurable.swift in Sources */,
4520+
6B50C91A253E2B16007B16DD /* APIAuthProviderFactory.swift in Sources */,
45014521
2144226E234BDE23009357F7 /* StorageUploadFileOperation.swift in Sources */,
45024522
21FFF9A2230C9731005878EA /* StorageListResult.swift in Sources */,
45034523
B92E03B42367CE7A006CEB8D /* DataStoreCategory+Configurable.swift in Sources */,
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//
2+
// Copyright 2018-2020 Amazon.com,
3+
// Inc. or its affiliates. All Rights Reserved.
4+
//
5+
// SPDX-License-Identifier: Apache-2.0
6+
//
7+
8+
import Foundation
9+
10+
open class APIAuthProviderFactory {
11+
public init() {
12+
}
13+
open func oidcAuthProvider() -> AmplifyOIDCAuthProvider? {
14+
return nil
15+
}
16+
}
17+
18+
public protocol AmplifyOIDCAuthProvider {
19+
func getLatestAuthToken() -> Result<String, Error>
20+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//
2+
// Copyright 2018-2020 Amazon.com,
3+
// Inc. or its affiliates. All Rights Reserved.
4+
//
5+
// SPDX-License-Identifier: Apache-2.0
6+
//
7+
8+
import Foundation
9+
10+
public protocol APICategoryAuthProviderFactoryBehavior {
11+
func apiAuthProviderFactory() -> APIAuthProviderFactory
12+
}

Amplify/Categories/API/ClientBehavior/APICategoryBehavior.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ public typealias APICategoryBehavior =
1010
APICategoryRESTBehavior &
1111
APICategoryGraphQLBehavior &
1212
APICategoryInterceptorBehavior &
13-
APICategoryReachabilityBehavior
13+
APICategoryReachabilityBehavior &
14+
APICategoryAuthProviderFactoryBehavior
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//
2+
// Copyright 2018-2020 Amazon.com,
3+
// Inc. or its affiliates. All Rights Reserved.
4+
//
5+
// SPDX-License-Identifier: Apache-2.0
6+
//
7+
8+
import Foundation
9+
10+
extension AmplifyAPICategory: APICategoryAuthProviderFactoryBehavior {
11+
public func apiAuthProviderFactory() -> APIAuthProviderFactory {
12+
return plugin.apiAuthProviderFactory()
13+
}
14+
}

AmplifyPlugins/API/APICategoryPlugin.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@
9494
6B33896E23AABEEE00561E5B /* MockReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B33896D23AABEEE00561E5B /* MockReachability.swift */; };
9595
6B33897023AABF1800561E5B /* NetworkReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B33896F23AABF1800561E5B /* NetworkReachability.swift */; };
9696
6B33897223AAD94800561E5B /* AWSAPIPlugin+Reachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B33897123AAD94800561E5B /* AWSAPIPlugin+Reachability.swift */; };
97+
6B382B452538E53700906593 /* AWSAPIPlugin+APIAuthProviderFactoryBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B382B442538E53700906593 /* AWSAPIPlugin+APIAuthProviderFactoryBehavior.swift */; };
98+
6BD4620625380EA200906831 /* OIDCAuthProviderWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BD4620525380EA200906831 /* OIDCAuthProviderWrapper.swift */; };
99+
6BD462082538102500906831 /* AuthTokenProviderWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BD462072538102500906831 /* AuthTokenProviderWrapper.swift */; };
97100
7632AD8A252E1E10009B5BC9 /* AppSyncJSONValue+toJSONValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7632AD89252E1E10009B5BC9 /* AppSyncJSONValue+toJSONValue.swift */; };
98101
9B13EA5E48896E8B38883633 /* Pods_HostApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 930DD773E0FB4047393CA2AD /* Pods_HostApp.framework */; };
99102
A04815BCD5F9181C8AEDEF43 /* Pods_AWSAPICategoryPlugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 881AB4B98B48235DEC7754C2 /* Pods_AWSAPICategoryPlugin.framework */; };
@@ -385,6 +388,9 @@
385388
6B33896D23AABEEE00561E5B /* MockReachability.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockReachability.swift; sourceTree = "<group>"; };
386389
6B33896F23AABF1800561E5B /* NetworkReachability.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkReachability.swift; sourceTree = "<group>"; };
387390
6B33897123AAD94800561E5B /* AWSAPIPlugin+Reachability.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AWSAPIPlugin+Reachability.swift"; sourceTree = "<group>"; };
391+
6B382B442538E53700906593 /* AWSAPIPlugin+APIAuthProviderFactoryBehavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AWSAPIPlugin+APIAuthProviderFactoryBehavior.swift"; sourceTree = "<group>"; };
392+
6BD4620525380EA200906831 /* OIDCAuthProviderWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OIDCAuthProviderWrapper.swift; sourceTree = "<group>"; };
393+
6BD462072538102500906831 /* AuthTokenProviderWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTokenProviderWrapper.swift; sourceTree = "<group>"; };
388394
6DD6386039136045F18D44AC /* Pods_HostApp_AWSAPICategoryPluginTestCommon_RESTWithUserPoolIntegrationTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HostApp_AWSAPICategoryPluginTestCommon_RESTWithUserPoolIntegrationTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
389395
74EDB7008F5342ED4B38C9CA /* Pods_HostApp_AWSAPICategoryPluginIntegrationTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HostApp_AWSAPICategoryPluginIntegrationTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
390396
7632AD89252E1E10009B5BC9 /* AppSyncJSONValue+toJSONValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AppSyncJSONValue+toJSONValue.swift"; sourceTree = "<group>"; };
@@ -726,6 +732,7 @@
726732
isa = PBXGroup;
727733
children = (
728734
21D5286624169E74005186BA /* IAMAuthInterceptor.swift */,
735+
6BD4620525380EA200906831 /* OIDCAuthProviderWrapper.swift */,
729736
);
730737
path = SubscriptionInterceptor;
731738
sourceTree = "<group>";
@@ -734,6 +741,7 @@
734741
isa = PBXGroup;
735742
children = (
736743
21D7A09A237B54D90057D00D /* AWSAPIPlugin.swift */,
744+
6B382B442538E53700906593 /* AWSAPIPlugin+APIAuthProviderFactoryBehavior.swift */,
737745
21D7A098237B54D90057D00D /* AWSAPIPlugin+Configure.swift */,
738746
21D7A0B1237B54D90057D00D /* AWSAPIPlugin+GraphQLBehavior.swift */,
739747
21D7A099237B54D90057D00D /* AWSAPIPlugin+InterceptorBehavior.swift */,
@@ -852,6 +860,7 @@
852860
isa = PBXGroup;
853861
children = (
854862
21D7A0D5237B54D90057D00D /* APIKeyURLRequestInterceptor.swift */,
863+
6BD462072538102500906831 /* AuthTokenProviderWrapper.swift */,
855864
21D7A0D6237B54D90057D00D /* IAMURLRequestInterceptor.swift */,
856865
21D7A0D4237B54D90057D00D /* UserPoolRequestInterceptor.swift */,
857866
);
@@ -2154,6 +2163,7 @@
21542163
21D7A0FB237B54D90057D00D /* AWSAPIPlugin+GraphQLBehavior.swift in Sources */,
21552164
21D7A0E7237B54D90057D00D /* AWSAPIPlugin+Resettable.swift in Sources */,
21562165
21D7A115237B54D90057D00D /* AWSAPIPlugin+RESTBehavior.swift in Sources */,
2166+
6BD4620625380EA200906831 /* OIDCAuthProviderWrapper.swift in Sources */,
21572167
21D7A0EA237B54D90057D00D /* AWSAPIPlugin.swift in Sources */,
21582168
21D7A0E2237B54D90057D00D /* AWSAPIOperation+APIOperation.swift in Sources */,
21592169
6B2E465823AAA69C0066EDCE /* NetworkReachabilityNotifier.swift in Sources */,
@@ -2164,6 +2174,7 @@
21642174
21D7A0E0237B54D90057D00D /* AWSGraphQLSubscriptionOperation.swift in Sources */,
21652175
21D7A10B237B54D90057D00D /* AWSAppSyncGraphQLResponse.swift in Sources */,
21662176
2129BE3E239486D2006363A1 /* AnyModel+JSONInit.swift in Sources */,
2177+
6BD462082538102500906831 /* AuthTokenProviderWrapper.swift in Sources */,
21672178
214BD3B223FB5C4C0059A286 /* SubscriptionConnectionFactory.swift in Sources */,
21682179
21D7A0E4237B54D90057D00D /* APIOperation.swift in Sources */,
21692180
21D7A11A237B54D90057D00D /* AWSAPICategoryPluginError.swift in Sources */,
@@ -2189,6 +2200,7 @@
21892200
21409C4F2384BA7E000A53C9 /* APIOperationResponse.swift in Sources */,
21902201
217856B72381F19400A30D19 /* AWSAPICategoryPluginEndpointType.swift in Sources */,
21912202
21D7A0E9237B54D90057D00D /* AWSAPIPlugin+InterceptorBehavior.swift in Sources */,
2203+
6B382B452538E53700906593 /* AWSAPIPlugin+APIAuthProviderFactoryBehavior.swift in Sources */,
21922204
6B33897023AABF1800561E5B /* NetworkReachability.swift in Sources */,
21932205
21D7A0FE237B54D90057D00D /* URLSessionDataTaskBehavior.swift in Sources */,
21942206
21D7A0E5237B54D90057D00D /* AWSAPICategoryPluginConfiguration.swift in Sources */,
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// Copyright 2018-2020 Amazon.com,
3+
// Inc. or its affiliates. All Rights Reserved.
4+
//
5+
// SPDX-License-Identifier: Apache-2.0
6+
//
7+
8+
import Amplify
9+
import Foundation
10+
11+
extension AWSAPIPlugin {
12+
public func apiAuthProviderFactory() -> APIAuthProviderFactory {
13+
return authProviderFactory
14+
}
15+
}

AmplifyPlugins/API/AWSAPICategoryPlugin/AWSAPIPlugin+Configure.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ public extension AWSAPIPlugin {
3131
)
3232
}
3333

34-
let dependencies = try ConfigurationDependencies(configurationValues: jsonValue)
35-
34+
let dependencies = try ConfigurationDependencies(configurationValues: jsonValue,
35+
apiAuthProviderFactory: authProviderFactory)
3636
configure(using: dependencies)
3737

3838
log.info("Configure finished")
@@ -52,6 +52,7 @@ extension AWSAPIPlugin {
5252

5353
init(
5454
configurationValues: JSONValue,
55+
apiAuthProviderFactory: APIAuthProviderFactory,
5556
authService: AWSAuthServiceBehavior? = nil,
5657
subscriptionConnectionFactory: SubscriptionConnectionFactory? = nil
5758
) throws {
@@ -60,6 +61,7 @@ extension AWSAPIPlugin {
6061

6162
let pluginConfig = try AWSAPICategoryPluginConfiguration(
6263
jsonValue: configurationValues,
64+
apiAuthProviderFactory: apiAuthProviderFactory,
6365
authService: authService
6466
)
6567

AmplifyPlugins/API/AWSAPICategoryPlugin/AWSAPIPlugin+GraphQLBehavior.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public extension AWSAPIPlugin {
5050
pluginConfig: pluginConfig,
5151
subscriptionConnectionFactory: subscriptionConnectionFactory,
5252
authService: authService,
53+
apiAuthProviderFactory: authProviderFactory,
5354
inProcessListener: valueListener,
5455
resultListener: completionListener)
5556
queue.addOperation(operation)

AmplifyPlugins/API/AWSAPICategoryPlugin/AWSAPIPlugin.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ final public class AWSAPIPlugin: NSObject, APICategoryPlugin {
4141
/// to work around @available for use on stored properties
4242
var iReachabilityMap: [String: Any]?
4343

44+
var authProviderFactory: APIAuthProviderFactory
45+
4446
@available(iOS 13.0, *)
4547
var reachabilityMap: [String: NetworkReachabilityNotifier] {
4648
get {
@@ -56,11 +58,12 @@ final public class AWSAPIPlugin: NSObject, APICategoryPlugin {
5658

5759
public init(
5860
modelRegistration: AmplifyModelRegistration? = nil,
59-
sessionFactory: URLSessionBehaviorFactory? = nil
61+
sessionFactory: URLSessionBehaviorFactory? = nil,
62+
apiAuthProviderFactory: APIAuthProviderFactory? = nil
6063
) {
6164
self.mapper = OperationTaskMapper()
6265
self.queue = OperationQueue()
63-
66+
self.authProviderFactory = apiAuthProviderFactory ?? APIAuthProviderFactory()
6467
super.init()
6568

6669
modelRegistration?.registerModels(registry: ModelRegistry.self)

0 commit comments

Comments
 (0)