Pu Zhibing
9 天以前 120f73549d7898b8239ffc21f3320a8dbad2c2b1
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
@@ -11,10 +11,14 @@
import com.stylefeng.guns.core.intercept.RestApiInteceptor;
import com.stylefeng.guns.core.listener.ConfigListener;
import com.stylefeng.guns.core.xss.XssFilter;
import edu.yale.its.tp.cas.client.filter.OnconMDCasFilter;
import org.jasig.cas.client.session.SingleSignOutFilter;
import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
import org.springframework.aop.Advisor;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.aop.support.JdkRegexpMethodPointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
@@ -25,7 +29,9 @@
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
/**
@@ -39,6 +45,10 @@
    @Autowired
    private GunsProperties gunsProperties;
    @Value("${spring.profiles.active}")
    private String activeProfile;
    /**
     * 增加swagger的支持
@@ -50,7 +60,7 @@
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    }
    /**
     * 增加对rest api鉴权的spring mvc拦截器
     */
@@ -58,7 +68,7 @@
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/gunsApi/**");
    }
    /**
     * druidServlet注册
     */
@@ -68,7 +78,7 @@
        registration.addUrlMappings("/druid/*");
        return registration;
    }
    /**
     * druid监控 配置URI拦截策略
     */
@@ -172,4 +182,92 @@
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
    /********************黔云通单点登录拦截器**********************/
    @Bean
    public FilterRegistrationBean getOnconMDCasFilter() {
        OnconMDCasFilter onconMDCasFilter = new OnconMDCasFilter();
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        if("dev".equals(activeProfile)){
            registrationBean.setFilter(onconMDCasFilter);
            List<String> urlPatterns = new ArrayList<String>();
            urlPatterns.add("/*");
            registrationBean.setUrlPatterns(urlPatterns);
            registrationBean.setOrder(2);
            registrationBean.addInitParameter("oncon.com.security.urls", "/**");
            registrationBean.addInitParameter("erp.si-tech.com.cn.noCheckUrl", "/index.html,/static/**,/upload/**");
            registrationBean.addInitParameter("erp.si-tech.com.cn.nologinstatus", "/*");
            registrationBean.addInitParameter("erp.si-tech.com.cn.loginstatus", "/*");
            registrationBean.addInitParameter("com.oncon.sso.urlparams.nologin", "code,code2");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginUrl", "https://testsso1.teamshub.com/login");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.validateUrl", "https://testsso1.teamshub.com/serviceValidate");
            registrationBean.addInitParameter("com.oncon.md.loginUrl", "https://testsso1.teamshub.com/sso-session/login");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.serverName", "http://127.0.0.1:8010");
        }
        if("test".equals(activeProfile)){
            registrationBean.setFilter(onconMDCasFilter);
            List<String> urlPatterns = new ArrayList<String>();
            urlPatterns.add("/*");
            registrationBean.setUrlPatterns(urlPatterns);
            registrationBean.setOrder(2);
            registrationBean.addInitParameter("oncon.com.security.urls", "/**");
            registrationBean.addInitParameter("erp.si-tech.com.cn.noCheckUrl", "/index.html,/static/**,/upload/**");
            registrationBean.addInitParameter("erp.si-tech.com.cn.nologinstatus", "/*");
            registrationBean.addInitParameter("erp.si-tech.com.cn.loginstatus", "/*");
            registrationBean.addInitParameter("com.oncon.sso.urlparams.nologin", "code,code2");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginUrl", "https://testsso1.teamshub.com/login");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.validateUrl", "https://testsso1.teamshub.com/serviceValidate");
            registrationBean.addInitParameter("com.oncon.md.loginUrl", "https://testsso1.teamshub.com/sso-session/login");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.serverName", "https://traffic.qytzt.cn:443");
        }
        if("prod".equals(activeProfile)){
            registrationBean.setFilter(onconMDCasFilter);
            List<String> urlPatterns = new ArrayList<String>();
            urlPatterns.add("/*");
            registrationBean.setUrlPatterns(urlPatterns);
            registrationBean.setOrder(2);
            registrationBean.addInitParameter("oncon.com.security.urls", "/**");
            registrationBean.addInitParameter("erp.si-tech.com.cn.noCheckUrl", "/index.html,/static/**,/upload/**");
            registrationBean.addInitParameter("erp.si-tech.com.cn.nologinstatus", "/*");
            registrationBean.addInitParameter("erp.si-tech.com.cn.loginstatus", "/*");
            registrationBean.addInitParameter("com.oncon.sso.urlparams.nologin", "code,code2");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginUrl", "https://sso.teamshub.com/login");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.validateUrl", "https://sso.teamshub.com/serviceValidate");
            registrationBean.addInitParameter("com.oncon.md.loginUrl", "https://passport.teamshub.com/login");
            registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.serverName", "https://traffic.qytzt.cn:443");
        }
        return registrationBean;
    }
    @Bean
    public FilterRegistrationBean getSingleSignOutFilter() {
        SingleSignOutFilter singleSignOutFilter = new SingleSignOutFilter();
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(singleSignOutFilter);
        List<String> urlPatterns = new ArrayList<String>();
        urlPatterns.add("/*");//拦截路径,可以添加多个
        registrationBean.setUrlPatterns(urlPatterns);
        registrationBean.setOrder(1);
        registrationBean.addInitParameter("wmall.flag", "false");
        return registrationBean;
    }
    @Bean
    public ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> getSingleSignOutHttpSessionListener() {
        ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> servletListenerRegistrationBean
                = new ServletListenerRegistrationBean<>();
        servletListenerRegistrationBean.setListener(new SingleSignOutHttpSessionListener());
        return servletListenerRegistrationBean;
    }
}