package com.sap.hana.cloud.samples.benefits.connectivity.http.headers;
import com.sap.core.connectivity.api.authentication.AuthenticationHeader;
import com.sap.hana.cloud.samples.benefits.odata.UserManager;
/**
* Header provider that adds user mapping header, required when using mock API Endpoint.
* @author i024072
*
*/
@SuppressWarnings("nls")
public class ProxyUserHeaderProvider {
private static final String PROXY_USER_MAPPING_HEADER_NAME = "X-Proxy-User-Mapping";
private static final String SF_HR_MANAGER_USER = "mbarista1";
private static final String SF_MANAGED_EMPLOYEE_USER = "nnnn";
private static final char USER_SEPARATOR = '|';
public AuthenticationHeader createMappingHeader() {
String headerValue = UserManager.getIsUserAdmin() ? createMappingValue(SF_HR_MANAGER_USER) : createMappingValue(SF_MANAGED_EMPLOYEE_USER);
return new AuthenticationHeaderImpl(PROXY_USER_MAPPING_HEADER_NAME, headerValue);
}
private String createMappingValue(String sfUser) {
StringBuilder valueBuilder = new StringBuilder();
valueBuilder.append(UserManager.getUserId()).append(USER_SEPARATOR).append(sfUser);
return valueBuilder.toString();
}
}