Created
April 14, 2025 20:32
-
-
Save eddywebs/ee9db95b37d31cca521d01b5dfe3e881 to your computer and use it in GitHub Desktop.
urls to csp
This file contains hidden or 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
/// usage below | |
List<String> urls = new List<String>{ | |
'https://example1.com', | |
'https://example2.com', | |
'https://example3.com' | |
}; | |
AddTrustedUrls.addUrlsToTrustedSites(urls); | |
public class AddTrustedUrls { | |
@AuraEnabled | |
public static void addUrlsToTrustedSites(List<String> urls) { | |
if (urls == null || urls.isEmpty()) { | |
throw new IllegalArgumentException('URL list cannot be null or empty.'); | |
} | |
List<MetadataService.CspTrustedSite> trustedSites = new List<MetadataService.CspTrustedSite>(); | |
for (String url : urls) { | |
MetadataService.CspTrustedSite site = new MetadataService.CspTrustedSite(); | |
site.fullName = 'TrustedSite_' + url.hashCode(); // Unique name for the trusted site | |
site.endpointUrl = url; | |
site.isActive = true; | |
site.context = 'ALL'; // Options: ALL, LIGHTNING, VISUALFORCE | |
trustedSites.add(site); | |
} | |
// Call the Metadata API to create the trusted sites | |
MetadataService.MetadataPort service = createMetadataService(); | |
MetadataService.SaveResult[] results = service.createMetadata(trustedSites); | |
for (MetadataService.SaveResult result : results) { | |
if (!result.success) { | |
throw new MetadataServiceExamples.MetadataServiceException( | |
'Error adding trusted site: ' + result.errors[0].message | |
); | |
} | |
} | |
} | |
private static MetadataService.MetadataPort createMetadataService() { | |
MetadataService.MetadataPort service = new MetadataService.MetadataPort(); | |
service.SessionHeader = new MetadataService.SessionHeader_element(); | |
service.SessionHeader.sessionId = UserInfo.getSessionId(); | |
return service; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment