package de.otto.edison.togglz.authentication;
import org.springframework.util.Base64Utils;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.Optional;
public class Credentials {
private final String username;
private final String password;
private Credentials(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public static Optional<Credentials> readFrom(HttpServletRequest request) {
String authenticationHeader = request.getHeader("Authorization");
if (!StringUtils.isEmpty(authenticationHeader)) {
String credentials = authenticationHeader.substring(6, authenticationHeader.length());
String[] decodedCredentialParts = new String(Base64Utils.decode(credentials.getBytes())).split(":");
return Optional.of(new Credentials(decodedCredentialParts[0], decodedCredentialParts[1]));
} else {
return Optional.empty();
}
}
}