-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #11 from makeen-project/ALS-186_API_Authentication
[Enhancement] [ALS-1861] [iOS] Update Auth SDK's AutHelper to support API key
- Loading branch information
Showing
6 changed files
with
163 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
52 changes: 52 additions & 0 deletions
52
Sources/AmazonLocationiOSAuthSDK/Client/ApiKeyAuthScheme.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
import SmithyHTTPAuthAPI | ||
import Smithy | ||
import SmithyHTTPAPI | ||
|
||
public let apiKeyAuthSchemeID: String = "smithy.api#noAuth" | ||
|
||
public struct ApiKeyAuthScheme: AuthScheme { | ||
public var schemeID: String = apiKeyAuthSchemeID | ||
public var signer: any SmithyHTTPAuthAPI.Signer | ||
|
||
public func customizeSigningProperties( | ||
signingProperties: Smithy.Attributes, | ||
context: Smithy.Context | ||
) throws -> Smithy.Attributes { | ||
return signingProperties | ||
} | ||
} | ||
|
||
public class ApiKeySigner: Signer { | ||
public init() {} | ||
|
||
public func signRequest<IdentityT>( | ||
requestBuilder: SmithyHTTPAPI.HTTPRequestBuilder, | ||
identity: IdentityT, | ||
signingProperties: Smithy.Attributes | ||
) async throws -> SmithyHTTPAPI.HTTPRequestBuilder { | ||
return requestBuilder | ||
} | ||
} | ||
|
||
public class ApiKeyAuthSchemeResolverParameters: AuthSchemeResolverParameters { | ||
public var operation: String | ||
public init(operation: String) { | ||
self.operation = operation | ||
} | ||
} | ||
|
||
public class ApiKeyAuthSchemeResolver: AuthSchemeResolver { | ||
public func resolveAuthScheme(params: AuthSchemeResolverParameters) throws -> [AuthOption] { | ||
var validAuthOptions = Array<AuthOption>() | ||
validAuthOptions.append(AuthOption(schemeID: apiKeyAuthSchemeID)) | ||
return validAuthOptions | ||
} | ||
|
||
public func constructParameters(context: Context) throws -> AuthSchemeResolverParameters { | ||
guard let opName = context.getOperation() else { | ||
throw ClientError.dataNotFound( | ||
"Operation name not configured in middleware context for auth scheme resolver params construction.") | ||
} | ||
return ApiKeyAuthSchemeResolverParameters(operation: opName) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters