package net.unicon.cas.client.configuration;
import net.unicon.cas.client.configuration.EnableCasClient.ValidationType;
import org.springframework.boot.context.properties.ConfigurationProperties;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import static net.unicon.cas.client.configuration.EnableCasClient.ValidationType.CAS3;
/**
* {@link ConfigurationProperties} for CAS Java client filters.
*
* Will be used to customize CAS filters via simple properties or YAML files in standard Spring Boot PropertySources.
*
* @author Dmitriy Kopylenko
* @since 1.0.0
*/
@ConfigurationProperties(prefix = "cas", ignoreUnknownFields = false)
public class CasClientConfigurationProperties {
/**
* CAS server URL E.g. https://example.com/cas or https://cas.example. Required.
*/
@NotNull
private String serverUrlPrefix;
/**
* CAS server login URL E.g. https://example.com/cas/login or https://cas.example/login. Required.
*/
@NotNull
private String serverLoginUrl;
/**
* CAS-protected client application host URL E.g. https://myclient.example.com Required.
*/
@NotNull
private String clientHostUrl;
/**
* List of URL patterns protected by CAS authentication filter.
*/
private List<String> authenticationUrlPatterns = new ArrayList<>();
/**
* List of URL patterns protected by CAS validation filter.
*/
private List<String> validationUrlPatterns = new ArrayList<>();
/**
* List of URL patterns protected by CAS request wrapper filter.
*/
private List<String> requestWrapperUrlPatterns = new ArrayList<>();
/**
* List of URL patterns protected by CAS assertion thread local filter.
*/
private List<String> assertionThreadLocalUrlPatterns = new ArrayList<>();
/**
* Authentication filter gateway parameter.
*/
private Boolean gateway;
/**
* Validation filter useSession parameter.
*/
private Boolean useSession;
/**
* Validation filter redirectAfterValidation.
*/
private Boolean redirectAfterValidation;
/**
* Cas20ProxyReceivingTicketValidationFilter acceptAnyProxy parameter.
*/
private Boolean acceptAnyProxy;
/**
* Cas20ProxyReceivingTicketValidationFilter allowedProxyChains parameter.
*/
private List<String> allowedProxyChains = new ArrayList<>();
/**
* Cas20ProxyReceivingTicketValidationFilter proxyCallbackUrl parameter.
*/
private String proxyCallbackUrl;
/**
* Cas20ProxyReceivingTicketValidationFilter proxyReceptorUrl parameter.
*/
private String proxyReceptorUrl;
/**
* ValidationType the CAS protocol validation type. Defaults to CAS3 if not explicitly set.
*/
private ValidationType validationType = CAS3;
public String getServerUrlPrefix() {
return serverUrlPrefix;
}
public void setServerUrlPrefix(String serverUrlPrefix) {
this.serverUrlPrefix = serverUrlPrefix;
}
public String getServerLoginUrl() {
return serverLoginUrl;
}
public void setServerLoginUrl(String serverLoginUrl) {
this.serverLoginUrl = serverLoginUrl;
}
public String getClientHostUrl() {
return clientHostUrl;
}
public void setClientHostUrl(String clientHostUrl) {
this.clientHostUrl = clientHostUrl;
}
public Boolean getAcceptAnyProxy() {
return acceptAnyProxy;
}
public void setAcceptAnyProxy(Boolean acceptAnyProxy) {
this.acceptAnyProxy = acceptAnyProxy;
}
public List<String> getAllowedProxyChains() {
return allowedProxyChains;
}
public void setAllowedProxyChains(List<String> allowedProxyChains) {
this.allowedProxyChains = allowedProxyChains;
}
public String getProxyCallbackUrl() {
return proxyCallbackUrl;
}
public void setProxyCallbackUrl(String proxyCallbackUrl) {
this.proxyCallbackUrl = proxyCallbackUrl;
}
public String getProxyReceptorUrl() {
return proxyReceptorUrl;
}
public void setProxyReceptorUrl(String proxyReceptorUrl) {
this.proxyReceptorUrl = proxyReceptorUrl;
}
public Boolean getGateway() {
return gateway;
}
public void setGateway(Boolean gateway) {
this.gateway = gateway;
}
public Boolean getUseSession() {
return useSession;
}
public void setUseSession(Boolean useSession) {
this.useSession = useSession;
}
public Boolean getRedirectAfterValidation() {
return redirectAfterValidation;
}
public void setRedirectAfterValidation(Boolean redirectAfterValidation) {
this.redirectAfterValidation = redirectAfterValidation;
}
public List<String> getAssertionThreadLocalUrlPatterns() {
return assertionThreadLocalUrlPatterns;
}
public void setAssertionThreadLocalUrlPatterns(List<String> assertionThreadLocalUrlPatterns) {
this.assertionThreadLocalUrlPatterns = assertionThreadLocalUrlPatterns;
}
public List<String> getRequestWrapperUrlPatterns() {
return requestWrapperUrlPatterns;
}
public void setRequestWrapperUrlPatterns(List<String> requestWrapperUrlPatterns) {
this.requestWrapperUrlPatterns = requestWrapperUrlPatterns;
}
public List<String> getValidationUrlPatterns() {
return validationUrlPatterns;
}
public void setValidationUrlPatterns(List<String> validationUrlPatterns) {
this.validationUrlPatterns = validationUrlPatterns;
}
public List<String> getAuthenticationUrlPatterns() {
return authenticationUrlPatterns;
}
public void setAuthenticationUrlPatterns(List<String> authenticationUrlPatterns) {
this.authenticationUrlPatterns = authenticationUrlPatterns;
}
public ValidationType getValidationType() {
return validationType;
}
public void setValidationType(ValidationType validationType) {
this.validationType = validationType;
}
}