private void addBasicAuth(final Invocation.Builder invocationBuilder) {
        // Some OIDC providers expect authentication using a basic auth header
        // others expect the client(Id|Secret) to be in the form params and some cope
        // with both. Therefore, put them in both places to cover all bases.
        final String clientId = getClientId();
        final String clientSecret = getClientSecret();
        if (!NullSafe.isBlankString(clientId)
            && !NullSafe.isBlankString(clientSecret)) {
            String authorization = String.join(":", clientId, clientSecret);
            authorization = Base64.getEncoder().encodeToString(authorization.getBytes(StandardCharsets.UTF_8));
            authorization = "Basic " + authorization;
            invocationBuilder.header(HttpHeaders.AUTHORIZATION, authorization);
        }
    }
Allows you do define client credentials that differ from those in {@link OpenIdConfiguration}
stroom-security/stroom-security-common-impl/src/main/java/stroom/security/common/impl/OpenIdTokenRequestHelper.java