
com.kedauis.config.CasConfig Maven / Gradle / Ivy
package com.kedauis.config;
import org.jasig.cas.client.authentication.AuthenticationFilter;
import org.jasig.cas.client.util.AssertionThreadLocalFilter;
import org.jasig.cas.client.util.HttpServletRequestWrapperFilter;
import org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 项目名称:framework
* 类描述:
* 创建人:QiuYu
* 创建时间:2018/3/20 14:45
* 修改人:
* 修改时间:
* 修改备注:
*/
@Configuration
@Component
@ConfigurationProperties(prefix="cas")
public class CasConfig {
private String serverUrlPrefix;
private String serverLoginUrl;
private String clientHostUrl;
private String validationType;
private boolean useSession;
private boolean redirectAfterValidation;
@Bean
public FilterRegistrationBean authenticationFilterRegistrationBean() {
FilterRegistrationBean authenticationFilter = new FilterRegistrationBean();
authenticationFilter.setFilter(new AuthenticationFilter());
Map initParameters = new HashMap();
initParameters.put("casServerLoginUrl", serverLoginUrl);
initParameters.put("useSession", useSession?"true":"false");
initParameters.put("service", clientHostUrl);
initParameters.put("redirectAfterValidation", redirectAfterValidation?"true":"false");
authenticationFilter.setInitParameters(initParameters);
authenticationFilter.setOrder(2);
List urlPatterns = new ArrayList();
urlPatterns.add("/cas/*");// 设置匹配的url
authenticationFilter.setUrlPatterns(urlPatterns);
return authenticationFilter;
}
@Bean
public FilterRegistrationBean ValidationFilterRegistrationBean(){
FilterRegistrationBean authenticationFilter = new FilterRegistrationBean();
authenticationFilter.setFilter(new Cas20ProxyReceivingTicketValidationFilter());
Map initParameters = new HashMap();
initParameters.put("casServerUrlPrefix", serverUrlPrefix);
initParameters.put("service", clientHostUrl);
authenticationFilter.setInitParameters(initParameters);
authenticationFilter.setOrder(1);
List urlPatterns = new ArrayList();
urlPatterns.add("/cas/*");// 设置匹配的url
authenticationFilter.setUrlPatterns(urlPatterns);
return authenticationFilter;
}
@Bean
public FilterRegistrationBean casHttpServletRequestWrapperFilter(){
FilterRegistrationBean authenticationFilter = new FilterRegistrationBean();
authenticationFilter.setFilter(new HttpServletRequestWrapperFilter());
authenticationFilter.setEnabled(true);
authenticationFilter.setOrder(3);
List urlPatterns = new ArrayList();
urlPatterns.add("/*");// 设置匹配的url
authenticationFilter.setUrlPatterns(urlPatterns);
return authenticationFilter;
}
@Bean
public FilterRegistrationBean casAssertionThreadLocalFilter(){
FilterRegistrationBean authenticationFilter = new FilterRegistrationBean();
authenticationFilter.setFilter(new AssertionThreadLocalFilter());
authenticationFilter.setEnabled(true);
authenticationFilter.setOrder(4);
List urlPatterns = new ArrayList();
urlPatterns.add("/*");// 设置匹配的url
authenticationFilter.setUrlPatterns(urlPatterns);
return authenticationFilter;
}
public String getServerUrlPrefix() {
return serverUrlPrefix;
}
public void setServerUrlPrefix(String serverUrlPrefix) {
this.serverUrlPrefix = serverUrlPrefix;
}
public String getClientHostUrl() {
return clientHostUrl;
}
public void setClientHostUrl(String clientHostUrl) {
this.clientHostUrl = clientHostUrl;
}
public String getValidationType() {
return validationType;
}
public void setValidationType(String validationType) {
this.validationType = validationType;
}
public boolean isUseSession() {
return useSession;
}
public void setUseSession(boolean useSession) {
this.useSession = useSession;
}
public String getServerLoginUrl() {
return serverLoginUrl;
}
public void setServerLoginUrl(String serverLoginUrl) {
this.serverLoginUrl = serverLoginUrl;
}
public boolean isRedirectAfterValidation() {
return redirectAfterValidation;
}
public void setRedirectAfterValidation(boolean redirectAfterValidation) {
this.redirectAfterValidation = redirectAfterValidation;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy