From 75872ebee3265b1572925a9ed05037baa79bce32 Mon Sep 17 00:00:00 2001 From: Wolfgang Mathurin Date: Wed, 10 Jun 2026 15:12:36 -0700 Subject: [PATCH 1/2] W-22917328: Rename token endpoint wire keys beacon_child_consumer_{key,secret} to auto_installed_app_org_consumer_{key,secret} Updates only the string values parsed from the token endpoint response. All code symbol names (constants, properties, methods) are unchanged. --- .../SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h | 4 ++-- .../SalesforceSDKCoreTests/SFOAuthCredentialsTests.m | 4 ++-- .../SFSDKOAuthTokenEndpointResponseTests.m | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h index 73f2f1da78..e32c8ea80f 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h @@ -78,8 +78,8 @@ static NSString * const kSFOAuthCookieSidClient = @"cookie-sid_C static NSString * const kSFOAuthSidCookieName = @"sidCookieName"; static NSString * const kSFOAuthParentSid = @"parent_sid"; static NSString * const kSFOAuthTokenFormat = @"token_format"; -static NSString * const kSFOAuthBeaconChildConsumerKey = @"beacon_child_consumer_key"; -static NSString * const kSFOAuthBeaconChildConsumerSecret = @"beacon_child_consumer_secret"; +static NSString * const kSFOAuthBeaconChildConsumerKey = @"auto_installed_app_org_consumer_key"; +static NSString * const kSFOAuthBeaconChildConsumerSecret = @"auto_installed_app_org_consumer_secret"; // Used for the IP bypass flow, Advanced auth flow diff --git a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFOAuthCredentialsTests.m b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFOAuthCredentialsTests.m index 05b9172b9b..1b082b0e51 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFOAuthCredentialsTests.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFOAuthCredentialsTests.m @@ -77,8 +77,8 @@ - (void)tryUpdateCredentials:(BOOL)encrypted storageType:(SFOAuthCredentialsStor [params setObject:@"test-sid-cookie-name" forKey:@"sidCookieName"]; [params setObject:@"test-parent-sid" forKey:@"parent_sid"]; [params setObject:@"test-token-format" forKey:@"token_format"]; - [params setObject:@"test-beacon-child-consumer-key" forKey:@"beacon_child_consumer_key"]; - [params setObject:@"test-beacon-child-consumer-secret" forKey:@"beacon_child_consumer_secret"]; + [params setObject:@"test-beacon-child-consumer-key" forKey:@"auto_installed_app_org_consumer_key"]; + [params setObject:@"test-beacon-child-consumer-secret" forKey:@"auto_installed_app_org_consumer_secret"]; [creds updateCredentials:params]; // Check updated SFOAuthCredentials diff --git a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFSDKOAuthTokenEndpointResponseTests.m b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFSDKOAuthTokenEndpointResponseTests.m index b983f376c2..dc11f8b437 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFSDKOAuthTokenEndpointResponseTests.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SFSDKOAuthTokenEndpointResponseTests.m @@ -63,8 +63,8 @@ - (void)testInitWithDictionary { [params setObject:@"test-sid-cookie-name" forKey:@"sidCookieName"]; [params setObject:@"test-parent-sid" forKey:@"parent_sid"]; [params setObject:@"test-token-format" forKey:@"token_format"]; - [params setObject:@"test-beacon-child-consumer-key" forKey:@"beacon_child_consumer_key"]; - [params setObject:@"test-beacon-child-consumer-secret" forKey:@"beacon_child_consumer_secret"]; + [params setObject:@"test-beacon-child-consumer-key" forKey:@"auto_installed_app_org_consumer_key"]; + [params setObject:@"test-beacon-child-consumer-secret" forKey:@"auto_installed_app_org_consumer_secret"]; // Additional fields NSArray* additionalFields = @[ @"additional-1", @"additional-2" ]; From 1c73e4c8dfd402611fafa14ea78f6e8ac0631e7b Mon Sep 17 00:00:00 2001 From: Wolfgang Mathurin Date: Wed, 10 Jun 2026 15:41:59 -0700 Subject: [PATCH 2/2] W-22917328: Fall back to beacon_child_consumer_{key,secret} if new field absent Checks auto_installed_app_org_consumer_{key,secret} first; falls back to the old beacon_child_consumer_{key,secret} name for servers that have not yet rolled out version 264. --- .../SalesforceSDKCore/Classes/OAuth/SFOAuthCredentials.m | 5 +++++ .../SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h | 3 +++ 2 files changed, 8 insertions(+) diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCredentials.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCredentials.m index c0dfadbbdb..030d991df7 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCredentials.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCredentials.m @@ -469,11 +469,16 @@ - (void)updateCredentials:(NSDictionary *) params { if (params[kSFOAuthTokenFormat]) { self.tokenFormat = params[kSFOAuthTokenFormat]; } + // TODO: Remove kSFOAuthLegacyBeaconChildConsumer* fallback once server version 264 has rolled out everywhere. if (params[kSFOAuthBeaconChildConsumerKey]) { self.beaconChildConsumerKey = params[kSFOAuthBeaconChildConsumerKey]; + } else if (params[kSFOAuthLegacyBeaconChildConsumerKey]) { + self.beaconChildConsumerKey = params[kSFOAuthLegacyBeaconChildConsumerKey]; } if (params[kSFOAuthBeaconChildConsumerSecret]) { self.beaconChildConsumerSecret = params[kSFOAuthBeaconChildConsumerSecret]; + } else if (params[kSFOAuthLegacyBeaconChildConsumerSecret]) { + self.beaconChildConsumerSecret = params[kSFOAuthLegacyBeaconChildConsumerSecret]; } } diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h index e32c8ea80f..91acbaaf12 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h @@ -80,6 +80,9 @@ static NSString * const kSFOAuthParentSid = @"parent_sid"; static NSString * const kSFOAuthTokenFormat = @"token_format"; static NSString * const kSFOAuthBeaconChildConsumerKey = @"auto_installed_app_org_consumer_key"; static NSString * const kSFOAuthBeaconChildConsumerSecret = @"auto_installed_app_org_consumer_secret"; +// TODO: Remove legacy fallback constants once server version 264 has rolled out everywhere. +static NSString * const kSFOAuthLegacyBeaconChildConsumerKey = @"beacon_child_consumer_key"; +static NSString * const kSFOAuthLegacyBeaconChildConsumerSecret = @"beacon_child_consumer_secret"; // Used for the IP bypass flow, Advanced auth flow