package io.lumify.web.auth;
import io.lumify.core.config.Configurable;
import io.lumify.core.config.PostConfigurationValidator;
import java.util.Arrays;
import java.util.List;
public class LdapX509AuthenticationConfiguration {
private String clientDnHeader;
private String clientCertHeader;
private String requiredAttribute;
private List<String> requiredAttributeValues;
private List<String> requiredGroups;
private String usernameAttribute;
private String displayNameAttribute;
@Configurable(name = "clientDnHeader", defaultValue = "SSL_CLIENT_S_DN")
public void setClientDnHeader(String clientDnHeader) {
this.clientDnHeader = clientDnHeader;
}
@Configurable(name = "clientCertHeader", defaultValue = "SSL_CLIENT_CERT")
public void setClientCertHeader(String clientCertHeader) {
this.clientCertHeader = clientCertHeader;
}
@Configurable(name = "requiredAttribute", required = false)
public void setRequiredAttribute(String requiredAttribute) {
this.requiredAttribute = requiredAttribute;
}
@Configurable(name = "requiredAttributeValues", required = false)
public void setRequiredAttributeValues(String requiredAttributeValues) {
this.requiredAttributeValues = Arrays.asList(requiredAttributeValues.split(","));
}
@Configurable(name = "requiredGroups", required = false)
public void setRequiredGroups(String requiredGroups) {
this.requiredGroups = Arrays.asList(requiredGroups.split(","));
}
@Configurable(name = "usernameAttribute", required = false)
public void setUsernameAttribute(String usernameAttribute) {
this.usernameAttribute = usernameAttribute;
}
@Configurable(name = "displayNameAttribute", required = false)
public void setDisplayNameAttribute(String displayNameAttribute) {
this.displayNameAttribute = displayNameAttribute;
}
@PostConfigurationValidator(description = "requiredAttributeValues must be set if requiredAttribute is set")
public boolean validate() {
return requiredAttribute == null || requiredAttributeValues != null;
}
public String getClientCertHeader() {
return clientCertHeader;
}
public String getClientDnHeader() {
return clientDnHeader;
}
public String getRequiredAttribute() { return requiredAttribute; }
public List<String> getRequiredAttributeValues() { return requiredAttributeValues; }
public List<String> getRequiredGroups() { return requiredGroups; }
public String getUsernameAttribute() {
return usernameAttribute;
}
public String getDisplayNameAttribute() {
return displayNameAttribute;
}
}