Skip to content
This repository was archived by the owner on Jan 21, 2022. It is now read-only.

F114514/us769867 jenkins android automation #399

Open
wants to merge 80 commits into
base: Stable
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
b0dcedd
Error AccountManagerUtil MAS foundation Android SDK - Null pointer ex…
abhisheknaidu-462 May 18, 2020
8f965bf
DE452288 - Added exception message for null pointers.
abhisheknaidu-462 May 26, 2020
b285efd
We were deleting the refresh token without checking success or failur…
Jul 15, 2020
5ada959
Removing unused imports.
Jul 15, 2020
39d3693
Added the null check for Server Exception and based on that deleting …
Jul 16, 2020
a872fdc
Removed the tokenResponse null check.
Jul 16, 2020
451327e
Performing null check before deleting access token or refresh token f…
Jul 16, 2020
3df5ae0
Merge pull request #368 from CAAPIM/defect/DE469630_Delete_Refresh_to…
arindamhit Jul 17, 2020
2f6479a
Merge pull request #366 from CAAPIM/DE452288-fix-AccountManagerUtil
ab-sub Jul 22, 2020
b0fc02a
Blocked SCIM network call
abhisheknaidu-462 Aug 18, 2020
9f5f812
Revert "Blocked SCIM network call"
abhisheknaidu-462 Aug 20, 2020
ffdc2c2
Bloacked SCIM network call
abhisheknaidu-462 Aug 20, 2020
2011a10
Changes made with respect to update clear access token.
Oct 19, 2020
2357ad5
Added the SCIM call fix on this branch
Oct 19, 2020
4d30bf6
Adding SCIM call fix
Oct 19, 2020
2b38ce8
Merge pull request #373 from CAAPIM/DE473035-bugfix-SCIM-call
zakirjt Oct 21, 2020
f8777b3
Merge pull request #375 from CAAPIM/defect/DE481799_Update_ClearAcces…
arindamhit Nov 12, 2020
977a7a9
While writing the outputstream, again boundary was getting assigned. …
Dec 3, 2020
a29a1bb
Merge pull request #376 from CAAPIM/defect/DE485106_Double_Boundary_F…
arindamhit Dec 7, 2020
7a60c95
Added the codes for the fix given by Oracle for Parsing the cipher is…
Mar 30, 2021
ff852f0
Code changes for SSL Pinning implementation. SSL Pinning will be disa…
Jun 7, 2021
c76b96a
Merge pull request #377 from CAAPIM/defect/DE492305_Parse_Cipher_In_T…
arindamhit Jun 7, 2021
906b162
Code changes for SSL Pinning implementation. SSL Pinning will be disa…
Jun 7, 2021
afdf7f9
SSL Pinning changes
Jun 14, 2021
ef94c12
[US749259] Renaming the flags to be in sync with iOS and added code t…
ysd24 Jul 5, 2021
18ff3ec
Merge branch 'develop' of https://github.com/CAAPIM/Android-MAS-SDK i…
ysd24 Jul 13, 2021
6f5c861
[US749259] Updated the naming convention in accordance with iOS and a…
ysd24 Jul 13, 2021
d5fb7c3
[US749259] Uncommented the code in MASConfiguration for isSslPinningE…
ysd24 Jul 13, 2021
562023d
[US749259] Uncommented the code in MASConfiguration
ysd24 Jul 13, 2021
41c4d4b
Merge pull request #380 from CAAPIM/feature/US749259_SSL_Pinning_disa…
ysd24 Jul 13, 2021
0c03d34
TLS 1.3 support and NO Padding property added in develop branch
Aug 23, 2021
1c73829
CodeVerifierCache and AccountManagerUtil changes in the Develop branch
Aug 23, 2021
690d864
Merge pull request #393 from CAAPIM/TLS_1.3_Support_with_Encryption_N…
arindamhit Aug 24, 2021
690713f
Merge pull request #395 from CAAPIM/DE506139_CodeVerifier_Store_in_Sh…
arindamhit Aug 24, 2021
ed0f023
Create Jenkins-android-sdk
bn666026 Oct 11, 2021
2204e8a
Update Jenkinsfile-android
bn666026 Oct 11, 2021
e540e83
Update Jenkinsfile-android
bn666026 Oct 11, 2021
573b533
Update Jenkinsfile-android
bn666026 Oct 11, 2021
1d17f47
Update Jenkinsfile-android
bn666026 Oct 11, 2021
3329568
Update Jenkinsfile-android
bn666026 Oct 11, 2021
627dbf3
Update Jenkinsfile-android
bn666026 Oct 11, 2021
8de5271
Update Jenkinsfile-android
bn666026 Oct 11, 2021
0554130
Update Jenkinsfile-android
bn666026 Oct 11, 2021
6fa47a9
Update Jenkinsfile-android
bn666026 Oct 11, 2021
285dad8
Update Jenkinsfile-android
bn666026 Oct 11, 2021
7b3a2c9
Update Jenkinsfile-android
bn666026 Oct 11, 2021
d71ef66
Update Jenkinsfile-android
bn666026 Oct 11, 2021
6d78d1e
Update Jenkinsfile-android
bn666026 Oct 11, 2021
9ef1643
Update Jenkinsfile-android
bn666026 Oct 11, 2021
bc7fb2d
Update Jenkinsfile-android
bn666026 Oct 11, 2021
fad2420
Update Jenkinsfile-android
bn666026 Oct 11, 2021
466cd96
Update Jenkinsfile-android
bn666026 Oct 11, 2021
2247bb9
Update Jenkinsfile-android
bn666026 Oct 11, 2021
dacb986
Update Jenkinsfile-android
bn666026 Oct 11, 2021
b74a40c
Update Jenkinsfile-android
bn666026 Oct 11, 2021
d75055f
Update Jenkinsfile-android
bn666026 Oct 11, 2021
8487825
Update Jenkinsfile-android
bn666026 Oct 11, 2021
b4ee4f6
Update Jenkinsfile-android
bn666026 Oct 11, 2021
631182b
Update Jenkinsfile-android
bn666026 Oct 11, 2021
891df30
Update Jenkinsfile-android
bn666026 Oct 11, 2021
5d450d2
Update Jenkinsfile-android
bn666026 Oct 11, 2021
665dd52
Update Jenkinsfile-android
bn666026 Oct 11, 2021
f41d652
Update Jenkinsfile-android
bn666026 Oct 11, 2021
dfc5310
Update Jenkinsfile-android
bn666026 Oct 11, 2021
362215f
Update Jenkinsfile-android
bn666026 Oct 11, 2021
45bdc13
Update Jenkinsfile-android
bn666026 Oct 11, 2021
8d8dcae
Update Jenkinsfile-android
bn666026 Oct 11, 2021
ea294e9
Update Jenkinsfile-android
bn666026 Oct 11, 2021
8d4d54c
Update Jenkinsfile-android
bn666026 Oct 11, 2021
be664aa
Update Jenkinsfile-android
bn666026 Oct 11, 2021
4ea7982
Update Jenkinsfile-android
bn666026 Oct 11, 2021
8c5ae1e
Update Jenkinsfile-android
bn666026 Oct 11, 2021
fd664f8
Update Jenkinsfile-android
bn666026 Oct 11, 2021
9ca6e64
Update Jenkinsfile-android
bn666026 Oct 11, 2021
c61085f
Update Jenkinsfile-android
bn666026 Oct 11, 2021
9f76125
Update Jenkinsfile-android
bn666026 Oct 11, 2021
e20c32d
Update Jenkinsfile-android
bn666026 Oct 11, 2021
26ae342
Update Jenkinsfile-android
bn666026 Oct 11, 2021
6183a23
Update Jenkinsfile-android
bn666026 Oct 13, 2021
a08f106
Update Jenkinsfile-android
bn666026 Oct 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
220 changes: 220 additions & 0 deletions Jenkinsfile-android
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
@Library('apim-jenkins-lib@master') _

pipeline {
agent { label 'ng2AgentStable' }
environment {
ARTIFACTORY_CREDS = credentials('ARTIFACTORY_USERNAME_PASSWORD')
ARTIFACTORY_USER = "$ARTIFACTORY_CREDS_USR"
ARTIFACTORY_PASSWORD = "$ARTIFACTORY_CREDS_PSW"
}
parameters {
string(name: 'SDK_Branch_Name', defaultValue: 'develop', description: 'Android-MAS-SDK Git repo branch name')
string(name: 'MASUnit_Branch_Name', defaultValue: 'develop', description: 'Android-MAS-Unit Git repo branch name')
string(name: 'Emulator_Device_Name', defaultValue: 'device-api29', description: 'Emulator Device Name')
string(name: 'ADB', defaultValue: '/Users/qa/Library/Android/sdk/platform-tools/adb', description: 'adb path')
string(name: 'Android_Home', defaultValue: '/Users/qa/Library/Android/sdk', description: 'Android Home Path')
string(name: 'New_Test_Rail_Report', defaultValue: 'true', description: 'New Test Rail Report Status')
string(name: 'Foundation', defaultValue: 'true', description: 'MAS Foundation')
string(name: 'Storage', defaultValue: 'true', description: 'MAS Storage')
string(name: 'Messaging', defaultValue: 'true', description: 'MAS Messaging')
}
stages {
stage("Checkout") {
steps {
echo "Checking out SDK Branch ..."
script {
checkout([
$class: 'GitSCM',
branches: [[name: '*/${SDK_Branch_Name}']],
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'MASSDK']],
userRemoteConfigs: [[credentialsId:'GITHUB_CAAPIM_TOKEN',url: 'https://github.com/CAAPIM/Android-MAS-SDK.git']]
])
echo "Checking out MASUnit Branch ..."
checkout([
$class: 'GitSCM',
branches: [[name: '*/${MASUNIT_Branch_Name}']],
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'MASUnit']],
userRemoteConfigs: [[credentialsId:'GITHUB_CAAPIM_TOKEN',url: 'https://github.com/CAAPIM/Android-MAS-Unit.git']]
])

}
echo "Copy configs and build gradle ..."
script {
sh 'echo "pwd=$(pwd)"'
sh '"ls -l=$(ls -l)"'
sh 'echo "emulatore name ${Emulator_Device_Name}"
sh 'cd ${Android_Home}/emulator;emulator -no-snapshot -avd ${Emulator_Device_Name} & echo -ne '\n''
sh './gradlew assembleAndroidTest build'
sh '${ADB} shell input keyevent 82'
sh '${ADB} shell input text 1111'
sh '${ADB} shell input keyevent 66'
}
script {
//Check new report
//Give emulator a safety margin to start
//Input password giving emulator enough time to respond
echo "Launching emulator ${ADB}"
sleep 180
sh' ${ADB} shell input keyevent 82'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input keyevent 66'
if (${New_Test_Rail_Report}=='true') {
echo "Uninstall MASUnit App"
sh '${ADB} uninstall com.ca.mas.masunit'
}


//Install MASUnit-debug.apk
if (! -f MASUnit/build/outputs/apk/debug/MASUnit-debug.apk) {
echo "MASUnit-debug.apk not found"
exit 1
}

sh '${ADB} push MASUnit/build/outputs/apk/debug/MASUnit-debug.apk /data/local/tmp/com.ca.mas.masunit'
if ( ! $? -eq 0 ) {
echo "Failed to push MASUnit-debug.apk to device"
exit 1
}
sh '${ADB} shell pm install -r "/data/local/tmp/com.ca.mas.masunit"'
if ( ! $? -eq 0 ) {
echo "Failed to intall MASUnit-debug.apk to device"
exit 1
}

//Install MASUnit-debug-androidTest.apk

if ( ! -f MASUnit/build/outputs/apk/androidTest/debug/MASUnit-debug-androidTest.apk ) {
echo "MASUnit-debug-androidTest.apk not found"
exit 1
}

sh '${ADB} push MASUnit/build/outputs/apk/androidTest/debug/MASUnit-debug-androidTest.apk /data/local/tmp/com.ca.mas.masunit.test'
if ( ! $? -eq 0 ) {
echo "Failed to push MASUnit-debug-androidTest.apk to device"
exit 1
}
sh '${ADB} shell pm install -r "/data/local/tmp/com.ca.mas.masunit.test"'
if ( ! $? -eq 0 ) {
echo "Failed to intall MASUnit-debug-androidTest.apk to device"
exit 1
}


//Running foundation tests
echo "Running tests..."

if (${Foundation}=='true') {
sh '${ADB} shell am instrument -w -r -e debug false -e class com.ca.mas.masunit2.test.foundation.MASUnitFoundationTestSuite com.ca.mas.masunit.test/androidx.test.runner.AndroidJUnitRunner'
}

if (${Storage}=='true') {
sh '${ADB} shell am instrument -w -r -e debug false -e class com.ca.mas.masunit2.test.storage.MASUnitStorageTestSuite com.ca.mas.masunit.test/androidx.test.runner.AndroidJUnitRunner'
}

if (${Messaging}=='true') {
sh '${ADB} shell am instrument -w -r -e debug false -e class com.ca.mas.masunit2.test.connecta.MASUnitMessagingTestSuite com.ca.mas.masunit.test/androidx.test.runner.AndroidJUnitRunner'
}

}

script{
echo "Running tests on Android....."
//Check new report

// Give emulator a safety margin to start
//Input password giving emulator enough time to respond
sh 'echo "Launching emulator ${ADB}" '
sleep 180
sh '${ADB} shell input keyevent 82'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input text 1'
sleep 5
sh '${ADB} shell input keyevent 66'
if (${New_Test_Rail_Report}=='true') {
echo "Uninstall MASUnit App"
sh '${ADB} uninstall com.ca.mas.masunit'
}


// Install MASUnit-debug.apk
if (! -f MASUnit/build/outputs/apk/debug/MASUnit-debug.apk ) {
echo "MASUnit-debug.apk not found"
exit 1
}

sh '${ADB} push MASUnit/build/outputs/apk/debug/MASUnit-debug.apk /data/local/tmp/com.ca.mas.masunit'
if ( ! $? -eq 0 ) {
echo "Failed to push MASUnit-debug.apk to device"
exit 1
}
sh '${ADB} shell pm install -r "/data/local/tmp/com.ca.mas.masunit"'
if ( ! $? -eq 0 ) {
echo "Failed to intall MASUnit-debug.apk to device"
exit 1
}

//Install MASUnit-debug-androidTest.apk

if ( ! -f MASUnit/build/outputs/apk/androidTest/debug/MASUnit-debug-androidTest.apk ) {
echo "MASUnit-debug-androidTest.apk not found"
exit 1
}

sh '${ADB} push MASUnit/build/outputs/apk/androidTest/debug/MASUnit-debug-androidTest.apk /data/local/tmp/com.ca.mas.masunit.test'
if ( ! $? -eq 0 ) {
echo "Failed to push MASUnit-debug-androidTest.apk to device"
exit 1
}
sh '${ADB} shell pm install -r "/data/local/tmp/com.ca.mas.masunit.test"'
if ( ! $? -eq 0 ) {
echo "Failed to intall MASUnit-debug-androidTest.apk to device"
exit 1
}


//Running foundation tests
echo "Running tests..."

if (${Foundation}=='true') {
sh '${ADB} shell am instrument -w -r -e debug false -e class com.ca.mas.masunit2.test.foundation.MASUnitFoundationTestSuite com.ca.mas.masunit.test/androidx.test.runner.AndroidJUnitRunner'
}

if (${Storage}=='true') {
sh '${ADB} shell am instrument -w -r -e debug false -e class com.ca.mas.masunit2.test.storage.MASUnitStorageTestSuite com.ca.mas.masunit.test/androidx.test.runner.AndroidJUnitRunner'
}

if (${Messaging}=='true') {
sh '${ADB} shell am instrument -w -r -e debug false -e class com.ca.mas.masunit2.test.connecta.MASUnitMessagingTestSuite com.ca.mas.masunit.test/androidx.test.runner.AndroidJUnitRunner'
}
}

script {
echo "close emulator ...."
sh 'cd ${Android_Home}/platform-tools/adb; emu kill'
}
}
}
}

post {
always {
echo "end"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,6 @@ public void testHttpOverrideContentType() throws InterruptedException {
assertEquals(head, customCharset.toString());
}


@Test
public void testMultiServerCertificatePinningWithCertChain() throws Exception {
URL url = new URL("https://swapi.co:443");
Expand Down Expand Up @@ -593,6 +592,51 @@ public void testMultiServerGeneratedSecurityConfiguration() throws Exception {
Assert.assertEquals(expectedResult, "CA Technologies");
}

@Test
public void testMultiServerEnableSSLPinning() throws Exception {
MAS.setSSLPinningEnabled(false);
MASSecurityConfiguration configuration = new MASSecurityConfiguration.Builder()
.host(new Uri.Builder().encodedAuthority(HOST).build())
.add("ZHVtbXk=") //Dummy
.build();
MASConfiguration.getCurrentConfiguration().addSecurityConfiguration(configuration);

MASRequest request = new MASRequest.MASRequestBuilder(
new Uri.Builder().encodedAuthority(HOST)
.scheme("https")
.path("test")
.build())
.build();
MASCallbackFuture<MASResponse<JSONObject>> callback = new MASCallbackFuture<>();
MAS.invoke(request, callback);

// Should pass as enableSSLPinning is false.
Assert.assertEquals(expectResponse.toString(), callback.get().getBody().getContent().toString());
}

@Test
public void testMultiServerAllowSSLPinning() throws Exception {
MAS.setSSLPinningEnabled(true);
MASSecurityConfiguration configuration = new MASSecurityConfiguration.Builder()
.host(new Uri.Builder().encodedAuthority(HOST).build())
.add("ZHVtbXk=") //Dummy
.allowSSLPinning(false)
.build();
MASConfiguration.getCurrentConfiguration().addSecurityConfiguration(configuration);

MASRequest request = new MASRequest.MASRequestBuilder(
new Uri.Builder().encodedAuthority(HOST)
.scheme("https")
.path("test")
.build())
.build();
MASCallbackFuture<MASResponse<JSONObject>> callback = new MASCallbackFuture<>();
MAS.invoke(request, callback);

// Should pass as allowSSLPinning is set to False
Assert.assertEquals(expectResponse.toString(), callback.get().getBody().getContent().toString());
}

private Certificate[] getCert(URL url) throws Exception {
//URL url = new URL("https://mobile-staging-androidautomation.l7tech.com:8443");
//URL url = new URL("https://swapi.co");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ public interface MobileSsoConfig {
*
* True if MSISDN information should be included. False if MSISDN information should not be included.
*/
String PROP_MSISDN_ENABLED = "msso.msisdn.enabled";
String PROP_MSISDN_ENABLED = "msso.msisdn.enabled";

/**
* String. URL suffix for client credentials endpoint.
Expand Down Expand Up @@ -310,7 +310,8 @@ public interface MobileSsoConfig {
String PROP_DEVICE_METADATA_PATH = "msso_device_metadata";


String PROP_ALLOW_SSL_PINNING = "allow_ssl_pinning";
// If you add any properties to this file, you must update MobileSsoFactory.createConfig()
// or they will be ignored.

}
}
5 changes: 3 additions & 2 deletions mas-foundation/src/main/java/com/ca/mas/core/conf/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public class Config {
public static final Config TRUSTED_CERT_PINNED_PUBLIC_KEY_HASHES = new Config(false, MobileSsoConfig.PROP_TRUSTED_CERT_PINNED_PUBLIC_KEY_HASHES, "mag.mobile_sdk.trusted_cert_pinned_public_key_hashes", List.class);
public static final Config CLIENT_CERT_RSA_KEYBITS = new Config(false, MobileSsoConfig.PROP_CLIENT_CERT_RSA_KEYBITS, "mag.mobile_sdk.client_cert_rsa_keybits", Integer.class);
public static final Config CLIENT_STORAGE = new Config(false, MobileSsoConfig.PROP_STORAGE, "mag.mobile_sdk.storage", String.class);
public static final Config ALLOW_SSL_PINNING = new Config(false, MobileSsoConfig.PROP_ALLOW_SSL_PINNING, "mag.mobile_sdk.allow_ssl_pinning", Boolean.class);

//mag.ble
public static final Config BLE_SERVICE_UUID = new Config(false, MobileSsoConfig.PROP_BLE_SERVICE_UUID, "mag.ble.msso_ble_service_uuid", String.class);
Expand All @@ -66,7 +67,7 @@ public class Config {
HOSTNAME, PORT, PREFIX, SERVER_CERTS, ORGANIZATION, CLIENT_KEY, CLIENT_SECRET, SCOPE, REDIRECT_URI, AUTHORIZE_PATH, REGISTER_TOKEN_PATH, REGISTER_TOKEN_PATH_SSO, LOGOUT_DEVICE_PATH, REVOKE_PATH,
REMOVE_DEVICE_PATH, REGISTER_DEVICE_PATH, RENEW_DEVICE_PATH, REGISTER_DEVICE_PATH_CLIENT, CLIENT_CREDENTIAL_INIT_PATH, ENTERPRISE_APP_PATH, SSO_ENABLED, LOCATION_ENABLED, LOCATION_PROVIDER,
MSISDN_ENABLED, TRUSTED_PUBLIC_PKI,DEVICE_METADATA_PATH, TRUSTED_CERT_PINNED_PUBLIC_KEY_HASHES, CLIENT_CERT_RSA_KEYBITS, CLIENT_STORAGE, BLE_SERVICE_UUID, BLE_USER_SESSION_CHARACTERISTIC_UUID,
BLE_RSSI, AUTHENTICATE_OTP_PATH
BLE_RSSI, AUTHENTICATE_OTP_PATH, ALLOW_SSL_PINNING
};

public boolean mandatory;
Expand All @@ -89,4 +90,4 @@ public Config(boolean mandatory, String key, String path, Class type) {
this.type = type;
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public class ConfigurationManager {
private List<Config> appConfigs;
private String configurationFileName = null;
private boolean enablePKCE = true;
private boolean sslPinningEnabled = true;
private boolean idTokenValidation = true;
private boolean enableJwksPreload = false;
private JSONObject jsonConfiguration;
Expand Down Expand Up @@ -78,6 +79,10 @@ public void enablePKCE(boolean enablePKCE) {
this.enablePKCE = enablePKCE;
}

public void setSSLPinningEnabled(boolean enable) {
this.sslPinningEnabled = enable;
}

public void enableIdTokenValidation(boolean enableValidation) {
this.idTokenValidation = enableValidation;
}
Expand All @@ -90,6 +95,10 @@ public boolean isPKCEEnabled() {
return enablePKCE;
}

public boolean isSslPinningEnabled() {
return sslPinningEnabled;
}

public void reset() {
connectedGatewayConfigurationProvider = null;
}
Expand Down Expand Up @@ -258,6 +267,12 @@ public ConfigurationProvider create(JSONObject jsonObject) throws JSONException
conf.setAlsoTrustPublicPki((Boolean) getValue(Config.TRUSTED_PUBLIC_PKI, jsonObject, Boolean.FALSE));
continue;
}

if (attr == Config.ALLOW_SSL_PINNING) {
conf.setAllowSSLPinning((Boolean) getValue(Config.ALLOW_SSL_PINNING, jsonObject, Boolean.TRUE));
continue;
}

Object value = getValue(attr, jsonObject);
if (value != null) {
conf.putProperty(attr.key, value);
Expand Down Expand Up @@ -477,4 +492,4 @@ public void enableJwksPreload(boolean enableJwksPreload) {
public void setJsonConfig(JSONObject jsonConfig) {
this.jsonConfiguration = jsonConfig;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,13 @@ public interface ConfigurationProvider extends TrustedCertificateConfiguration,
*/
String getPrefix();

/**
* Based on the provided configuration the SDK, retrieve the ssl_pinning_enabled attribute.
*
* @return the ssl pinning enabled flag configured for the Gateway.
*/
boolean isSSLPinningAllowed();

// Configuration properties that are not currently documented as part of the public API.

/**
Expand Down
Loading