Skip to content

Commit 4ec5448

Browse files
author
AWS
committed
The AWS Mobile SDK for iOS 2.5.3.
1 parent 9cf16db commit 4ec5448

File tree

120 files changed

+8454
-233
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+8454
-233
lines changed

AWSAPIGateway.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22

33
s.name = 'AWSAPIGateway'
4-
s.version = '2.5.2'
4+
s.version = '2.5.3'
55
s.summary = 'Amazon Web Services SDK for iOS.'
66

77
s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.'
@@ -13,7 +13,7 @@ Pod::Spec.new do |s|
1313
s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git',
1414
:tag => s.version}
1515
s.requires_arc = true
16-
s.dependency 'AWSCore', '2.5.2'
16+
s.dependency 'AWSCore', '2.5.3'
1717

1818
s.source_files = 'AWSAPIGateway/*.{h,m}'
1919
end

AWSAPIGateway/AWSAPIGatewayClient.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ typedef NS_ENUM(NSInteger, AWSAPIGatewayErrorType) {
3434

3535
@interface AWSAPIGatewayClient : NSObject
3636

37-
@property (nonatomic, strong, readonly) AWSServiceConfiguration *configuration;
37+
@property (nonatomic, strong) AWSServiceConfiguration *configuration;
3838

3939
@property (nonatomic, strong, nullable) NSString *APIKey;
4040

AWSAPIGateway/AWSAPIGatewayClient.m

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,12 @@
2323

2424
static NSString *const AWSAPIGatewayAPIKeyHeader = @"x-api-key";
2525

26-
static NSString *const AWSAPIGatewaySDKVersion = @"2.5.2";
26+
static NSString *const AWSAPIGatewaySDKVersion = @"2.5.3";
2727

2828
static int defaultChunkSize = 1024;
2929

3030
@interface AWSAPIGatewayClient()
3131

32-
@property (nonatomic, strong) AWSServiceConfiguration *configuration;
33-
3432
// Networking
3533
@property (nonatomic, strong) NSURLSession *session;
3634

AWSAPIGateway/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.5.2</string>
18+
<string>2.5.3</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

AWSAPIGatewayTests/AWSLambdaMicroserviceClient.m

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,6 @@ - (AWSTask *)invokeHTTPRequest:(NSString *)HTTPMethod
4242

4343
@end
4444

45-
@interface AWSLambdaMicroserviceClient()
46-
47-
@property (nonatomic, strong) AWSServiceConfiguration *configuration;
48-
49-
@end
50-
5145
@interface AWSServiceConfiguration()
5246

5347
@property (nonatomic, strong) AWSEndpoint *endpoint;

AWSAPIGatewayUnitTests/AWSAPIGatewayUnitTests.m

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
@interface AWSAPIGatewayClient()
2121

22-
@property (nonatomic, strong) AWSServiceConfiguration *configuration;
23-
2422
- (NSURL *)requestURL:(NSString *)URLString query:(NSDictionary *)query URLPathComponentsDictionary:(NSDictionary *)URLPathComponentsDictionary;
2523

2624
@end

AWSAutoScaling.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'AWSAutoScaling'
3-
s.version = '2.5.2'
3+
s.version = '2.5.3'
44
s.summary = 'Amazon Web Services SDK for iOS.'
55

66
s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.'
@@ -12,6 +12,6 @@ Pod::Spec.new do |s|
1212
s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git',
1313
:tag => s.version}
1414
s.requires_arc = true
15-
s.dependency 'AWSCore', '2.5.2'
15+
s.dependency 'AWSCore', '2.5.3'
1616
s.source_files = 'AWSAutoScaling/*.{h,m}'
1717
end

AWSAutoScaling/AWSAutoScalingService.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#import "AWSAutoScalingResources.h"
2727

2828
static NSString *const AWSInfoAutoScaling = @"AutoScaling";
29-
static NSString *const AWSAutoScalingSDKVersion = @"2.5.2";
29+
static NSString *const AWSAutoScalingSDKVersion = @"2.5.3";
3030

3131

3232
@interface AWSAutoScalingResponseSerializer : AWSXMLResponseSerializer

AWSAutoScaling/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.5.2</string>
18+
<string>2.5.3</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

AWSCloudWatch.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'AWSCloudWatch'
3-
s.version = '2.5.2'
3+
s.version = '2.5.3'
44
s.summary = 'Amazon Web Services SDK for iOS.'
55

66
s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.'
@@ -12,6 +12,6 @@ Pod::Spec.new do |s|
1212
s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git',
1313
:tag => s.version}
1414
s.requires_arc = true
15-
s.dependency 'AWSCore', '2.5.2'
15+
s.dependency 'AWSCore', '2.5.3'
1616
s.source_files = 'AWSCloudWatch/*.{h,m}'
1717
end

AWSCloudWatch/AWSCloudWatchService.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#import "AWSCloudWatchResources.h"
2727

2828
static NSString *const AWSInfoCloudWatch = @"CloudWatch";
29-
static NSString *const AWSCloudWatchSDKVersion = @"2.5.2";
29+
static NSString *const AWSCloudWatchSDKVersion = @"2.5.3";
3030

3131

3232
@interface AWSCloudWatchResponseSerializer : AWSXMLResponseSerializer

AWSCloudWatch/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.5.2</string>
18+
<string>2.5.3</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

AWSCognito.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'AWSCognito'
3-
s.version = '2.5.2'
3+
s.version = '2.5.3'
44
s.summary = 'Amazon Cognito SDK for iOS'
55

66
s.description = 'Amazon Cognito offers multi device data synchronization with offline access'
@@ -13,7 +13,7 @@ Pod::Spec.new do |s|
1313
:tag => s.version}
1414
s.requires_arc = true
1515
s.library = 'sqlite3'
16-
s.dependency 'AWSCore', '2.5.2'
16+
s.dependency 'AWSCore', '2.5.3'
1717
s.source_files = 'AWSCognito/*.{h,m}', 'AWSCognito/**/*.{h,m}'
1818
s.public_header_files = 'AWSCognito/*.h', 'AWSCognito/CognitoSync/*.h'
1919
s.private_header_files = 'AWSCognito/Fabric/*.h', 'AWSCognito/Internal/*.h'

AWSCognito/AWSCognitoService.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
#import "Fabric+FABKits.h"
3535

3636
static NSString *const AWSInfoCognito = @"Cognito";
37-
static NSString *const AWSCognitoSDKVersion = @"2.5.2";
37+
static NSString *const AWSCognitoSDKVersion = @"2.5.3";
3838

3939
NSString *const AWSCognitoDidStartSynchronizeNotification = @"com.amazon.cognito.AWSCognitoDidStartSynchronizeNotification";
4040
NSString *const AWSCognitoDidEndSynchronizeNotification = @"com.amazon.cognito.AWSCognitoDidEndSynchronizeNotification";

AWSCognito/CognitoSync/AWSCognitoSyncService.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#import "AWSCognitoSyncResources.h"
2727

2828
static NSString *const AWSInfoCognitoSync = @"CognitoSync";
29-
static NSString *const AWSCognitoSyncSDKVersion = @"2.5.2";
29+
static NSString *const AWSCognitoSyncSDKVersion = @"2.5.3";
3030

3131

3232
@interface AWSCognitoSyncResponseSerializer : AWSJSONResponseSerializer

AWSCognito/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.5.2</string>
18+
<string>2.5.3</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

AWSCognitoIdentityProvider.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'AWSCognitoIdentityProvider'
3-
s.version = '2.5.2'
3+
s.version = '2.5.3'
44
s.summary = 'Amazon Cognito Identity Provider SDK for iOS (Beta)'
55

66
s.description = 'Amazon Cognito Identity Provider enables sign up and authentication of your end users'
@@ -12,7 +12,7 @@ Pod::Spec.new do |s|
1212
s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git',
1313
:tag => s.version}
1414
s.requires_arc = true
15-
s.dependency 'AWSCore', '2.5.2'
15+
s.dependency 'AWSCore', '2.5.3'
1616
s.source_files = 'AWSCognitoIdentityProvider/**/*.{h,m,c}'
1717
s.public_header_files = 'AWSCognitoIdentityProvider/*.h', 'AWSCognitoIdentityProvider/CognitoIdentityProvider/*.h'
1818
s.private_header_files = 'AWSCognitoIdentityProvider/Internal/*.h'

AWSCognitoIdentityProvider/AWSCognitoIdentityUser.m

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,16 @@ -(instancetype) initWithUsername: (NSString *)username pool:(AWSCognitoIdentityU
6262
request.secretHash = [self.pool calculateSecretHash:self.username];
6363
request.confirmationCode = confirmationCode;
6464
request.forceAliasCreation = (forceAliasCreation?@(YES):@(NO));
65-
return [[self.pool.client confirmSignUp:request] continueWithSuccessBlock:^id _Nullable(AWSTask<AWSCognitoIdentityProviderConfirmSignUpResponse *> * _Nonnull task) {
66-
AWSCognitoIdentityUserConfirmSignUpResponse * response = [AWSCognitoIdentityUserConfirmSignUpResponse new];
67-
[response aws_copyPropertiesFromObject:task.result];
68-
return [AWSTask taskWithResult:response];
65+
return [[self.pool.client confirmSignUp:request] continueWithBlock:^id _Nullable(AWSTask<AWSCognitoIdentityProviderConfirmSignUpResponse *> * _Nonnull task) {
66+
if (task.error) {
67+
self.confirmedStatus = AWSCognitoIdentityUserStatusUnconfirmed;
68+
return task;
69+
} else {
70+
self.confirmedStatus = AWSCognitoIdentityUserStatusConfirmed;
71+
AWSCognitoIdentityUserConfirmSignUpResponse * response = [AWSCognitoIdentityUserConfirmSignUpResponse new];
72+
[response aws_copyPropertiesFromObject:task.result];
73+
return [AWSTask taskWithResult:response];
74+
}
6975
}];
7076
}
7177

@@ -150,6 +156,10 @@ -(instancetype) initWithUsername: (NSString *)username pool:(AWSCognitoIdentityU
150156
NSDate *expiration = [NSDate aws_dateFromString:expirationDate format:AWSDateISO8601DateFormat1];
151157
NSString * refreshTokenKey = [self keyChainKey:keyChainNamespace key:AWSCognitoIdentityUserRefreshToken];
152158
NSString * refreshToken = self.pool.keychain[refreshTokenKey];
159+
160+
// Token exists, the user is confirmed
161+
self.confirmedStatus = AWSCognitoIdentityUserStatusConfirmed;
162+
153163
//if the session expires > 5 minutes return it.
154164
if(expiration && [expiration compare:[NSDate dateWithTimeIntervalSinceNow:5 * 60]] == NSOrderedDescending){
155165
NSString * idTokenKey = [self keyChainKey:keyChainNamespace key:AWSCognitoIdentityUserIdToken];
@@ -193,17 +203,35 @@ -(instancetype) initWithUsername: (NSString *)username pool:(AWSCognitoIdentityU
193203
}];
194204
}
195205
}
196-
return [self interactiveAuth];
206+
return [self setConfirmationStatus: [self interactiveAuth]];
197207
}
198208

209+
210+
199211
/**
200212
* Explicitly get a session without using any cached tokens/refresh tokens.
201213
*/
202214
- (AWSTask<AWSCognitoIdentityUserSession*>*) getSession:(NSString *)username password:(NSString *)password validationData:(NSArray<AWSCognitoIdentityUserAttributeType*>*)validationData {
203215

204-
return [[self srpAuthInternal:username password:password validationData:validationData lastChallenge:nil isInitialCustomChallenge:NO] continueWithSuccessBlock:^id _Nullable(AWSTask<AWSCognitoIdentityProviderRespondToAuthChallengeResponse *> * _Nonnull task) {
216+
return [self setConfirmationStatus: [[self srpAuthInternal:username password:password validationData:validationData lastChallenge:nil isInitialCustomChallenge:NO] continueWithSuccessBlock:^id _Nullable(AWSTask<AWSCognitoIdentityProviderRespondToAuthChallengeResponse *> * _Nonnull task) {
205217
return [self getSessionInternal:task];
206-
}];
218+
}]];
219+
}
220+
221+
- (AWSTask<AWSCognitoIdentityUserSession*>*) setConfirmationStatus: (AWSTask<AWSCognitoIdentityUserSession*>*) task {
222+
223+
// If the user status is unknown
224+
if (self.confirmedStatus == AWSCognitoIdentityUserStatusUnknown) {
225+
if (task.error) {
226+
if (task.error.code == AWSCognitoIdentityProviderErrorUserNotConfirmed) {
227+
self.confirmedStatus = AWSCognitoIdentityUserStatusUnconfirmed;
228+
}
229+
} else {
230+
self.confirmedStatus = AWSCognitoIdentityUserStatusConfirmed;
231+
}
232+
}
233+
234+
return task;
207235
}
208236

209237

AWSCognitoIdentityProvider/CognitoIdentityProvider/AWSCognitoIdentityProviderService.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#import "AWSCognitoIdentityProviderResources.h"
2727

2828
static NSString *const AWSInfoCognitoIdentityProvider = @"CognitoIdentityProvider";
29-
static NSString *const AWSCognitoIdentityProviderSDKVersion = @"2.5.2";
29+
static NSString *const AWSCognitoIdentityProviderSDKVersion = @"2.5.3";
3030

3131

3232
@interface AWSCognitoIdentityProviderResponseSerializer : AWSJSONResponseSerializer

AWSCognitoIdentityProvider/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.5.2</string>
18+
<string>2.5.3</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

AWSCognitoSync.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22

33
s.name = 'AWSCognitoSync'
4-
s.version = '2.5.2'
4+
s.version = '2.5.3'
55
s.summary = 'Amazon Cognito SDK for iOS'
66

77
s.description = 'Amazon Cognito offers multi device data synchronization with offline access'
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
1414
:tag => s.version}
1515
s.requires_arc = true
1616
s.library = 'sqlite3'
17-
s.dependency 'AWSCognito', '2.5.2'
17+
s.dependency 'AWSCognito', '2.5.3'
1818

1919
s.deprecated = true
2020
s.deprecated_in_favor_of = 'AWSCognito'

AWSCore.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22

33
s.name = 'AWSCore'
4-
s.version = '2.5.2'
4+
s.version = '2.5.3'
55
s.summary = 'Amazon Web Services SDK for iOS.'
66

77
s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.'

AWSCore/Authentication/AWSCredentialsProvider.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,27 @@ typedef NS_ENUM(NSInteger, AWSCognitoCredentialsProviderErrorType) {
110110

111111
@end
112112

113+
/**
114+
@warning This credentials provider is intended only for testing purposes.
115+
We strongly discourage embedding AWS credentials in your production apps because they can be easily extracted and abused. Consider using `AWSCognitoCredentialsProvider`.
116+
Simple session credentials with keys and session token.
117+
*/
118+
@interface AWSBasicSessionCredentialsProvider: NSObject <AWSCredentialsProvider>
119+
120+
/**
121+
Instantiates a static credentials provider.
122+
123+
@param accessKey An AWS Access key.
124+
@param secretKey An AWS Secret key.
125+
@param sessionToken The session token for this session.
126+
@return An AWS credentials object.
127+
*/
128+
- (instancetype)initWithAccessKey:(NSString *)accessKey
129+
secretKey:(NSString *)secretKey
130+
sessionToken:(NSString *)sessionToken;
131+
132+
@end
133+
113134
@interface AWSAnonymousCredentialsProvider : NSObject <AWSCredentialsProvider>
114135

115136
@end

AWSCore/Authentication/AWSCredentialsProvider.m

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,36 @@ - (void)invalidateCachedTemporaryCredentials {
101101

102102
@end
103103

104+
@interface AWSBasicSessionCredentialsProvider()
105+
106+
@property (nonatomic, strong) AWSCredentials *internalCredentials;
107+
108+
@end
109+
110+
@implementation AWSBasicSessionCredentialsProvider
111+
112+
- (instancetype)initWithAccessKey:(NSString *)accessKey
113+
secretKey:(NSString *)secretKey
114+
sessionToken:(NSString *)sessionToken {
115+
if (self = [super init]) {
116+
_internalCredentials = [[AWSCredentials alloc] initWithAccessKey:accessKey
117+
secretKey:secretKey
118+
sessionKey:sessionToken
119+
expiration:nil];
120+
}
121+
return self;
122+
}
123+
124+
- (AWSTask<AWSCredentials *> *)credentials {
125+
return [AWSTask taskWithResult:self.internalCredentials];
126+
}
127+
128+
- (void)invalidateCachedTemporaryCredentials {
129+
// No-op
130+
}
131+
132+
@end
133+
104134
@implementation AWSAnonymousCredentialsProvider
105135

106136
- (AWSTask<AWSCredentials *> *)credentials {

AWSCore/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.5.2</string>
18+
<string>2.5.3</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

0 commit comments

Comments
 (0)