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; } }