
com.sap.mobile.services.client.XsuaaTokenFlowFactory Maven / Gradle / Ivy
The newest version!
package com.sap.mobile.services.client;
import com.sap.cloud.security.client.HttpClientFactory;
import com.sap.cloud.security.config.ClientCertificate;
import com.sap.cloud.security.config.ClientCredentials;
import com.sap.cloud.security.config.ClientIdentity;
import com.sap.cloud.security.xsuaa.client.DefaultOAuth2TokenService;
import com.sap.cloud.security.xsuaa.client.XsuaaDefaultEndpoints;
import com.sap.cloud.security.xsuaa.tokenflows.ClientCredentialsTokenFlow;
import com.sap.cloud.security.xsuaa.tokenflows.XsuaaTokenFlows;
public class XsuaaTokenFlowFactory {
private static final String CREDENTIAL_TYPE_X509 = "x509";
public ClientCredentialsTokenFlow createClientCredentialsTokenFlow(final MobileServicesBinding binding) {
final ClientIdentity clientIdentity;
if (CREDENTIAL_TYPE_X509.equals(binding.getClientConfiguration().getCredentialType())) {
clientIdentity = new ClientCertificate(binding.getClientConfiguration().getCertificate(),
binding.getClientConfiguration().getPrivateKey(), binding.getClientConfiguration().getClientId());
} else {
clientIdentity = new ClientCredentials(binding.getClientConfiguration().getClientId(),
binding.getClientConfiguration().getClientSecret());
}
return createTokenFlows(clientIdentity, binding.getClientConfiguration().getUrl(),
binding.getClientConfiguration().getCertUrl()).clientCredentialsTokenFlow();
}
XsuaaTokenFlows createTokenFlows(final ClientIdentity clientIdentity, final String oauthEndpointUrlBase,
final String certUri) {
return new XsuaaTokenFlows(
new DefaultOAuth2TokenService(HttpClientFactory.create(clientIdentity)),
new XsuaaDefaultEndpoints(oauthEndpointUrlBase, certUri),
clientIdentity);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy