We are working on an AppExchange app which integrates with 3rd Party application. To connect external app with Salesforce, a Subscriber System admin needs to connect External System using Client Id/Client Secret.
As of now External System is only supporting GET call which accepts ClientId and Client Secret.
e.g. ClientID and ClientSecret entered on a Salesforce Screen, which is passed as a parameter for the GET Callout. Below is the sample code snippet:
HTTPRequest req = new HTTPRequest();
req.setEndpoint('https://www.example.com/api?client_id='+clientId+'&client_secret='+clientSecret);
req.setHeader( 'Content-Type', 'application/json' );
It means a GET call will be sent from Salesforce server side (through Apex) to Example.com's API. No user can see the URL in inspector or browser logs (Developer console) as we are doing GET callout from Server Side and not client side.
But, the GET Call which contains "Client ID" and "Client Secret", can be logged in URLs on the Server Logs, as this calls are happening from Server (Salesforce) To Server (example.com).
Can someone please confirm that the GET request with ClientId/ClientSecret, which are sent from Salesforce server (through Apex code) to External sites, needs to be changed to a POST call and the ClientId/Secret key needs to be passed as a RequestBody instead of URL?