package de.codecentric.boot.admin.web.client;
import java.nio.charset.StandardCharsets;
import org.springframework.http.HttpHeaders;
import org.springframework.util.Base64Utils;
import org.springframework.util.StringUtils;
import de.codecentric.boot.admin.model.Application;
/**
* Provides Basic Auth headers for the {@link Application} using the metadata for "user.name" and
* "user.password".
*
* @author Johannes Edmeier
*/
public class BasicAuthHttpHeaderProvider implements HttpHeadersProvider {
@Override
public HttpHeaders getHeaders(Application application) {
String username = application.getMetadata().get("user.name");
String password = application.getMetadata().get("user.password");
HttpHeaders headers = new HttpHeaders();
if (StringUtils.hasText(username) && StringUtils.hasText(password)) {
headers.set(HttpHeaders.AUTHORIZATION, encode(username, password));
}
return headers;
}
protected String encode(String username, String password) {
String token = Base64Utils
.encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8));
return "Basic " + token;
}
}