From 638e7deedf01e2fa276d38f2215003e43996c54f Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 09 六月 2025 21:07:42 +0800
Subject: [PATCH] 开发中台接口对接

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java |  261 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 161 insertions(+), 100 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
index f287bb9..e410e10 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
@@ -8,9 +8,11 @@
 import com.google.code.kaptcha.impl.DefaultKaptcha;
 import com.google.code.kaptcha.util.Config;
 import com.stylefeng.guns.config.properties.GunsProperties;
-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.OnconMDWebCasFilter;
+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;
@@ -21,11 +23,12 @@
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.context.request.RequestContextListener;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 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;
 
 /**
@@ -36,94 +39,93 @@
  */
 @Configuration
 public class WebConfig extends WebMvcConfigurerAdapter {
-
-    @Autowired
-    private GunsProperties gunsProperties;
-
-    /**
-     * 增加swagger的支持
-     */
-    @Override
-    public void addResourceHandlers(ResourceHandlerRegistry registry) {
-        if (gunsProperties.getSwaggerOpen()) {
-            registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
-            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
-        }
-    }
-
-    /**
-     * 增加对rest api鉴权的spring mvc拦截器
-     */
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**")
-                .excludePathPatterns("/api/placeOrder/notifyUrl")
-                .excludePathPatterns("/api/placeOrder/notifyUrlOne");
-    }
-
-    /**
-     * druidServlet注册
-     */
-    @Bean
-    public ServletRegistrationBean druidServletRegistration() {
-        ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
-        registration.addUrlMappings("/druid/*");
-        return registration;
-    }
-
-    /**
-     * druid监控 配置URI拦截策略
-     */
-    @Bean
-    public FilterRegistrationBean druidStatFilter() {
-        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
-        //添加过滤规则.
-        filterRegistrationBean.addUrlPatterns("/*");
-        //添加不需要忽略的格式信息.
-        filterRegistrationBean.addInitParameter(
-                "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
-        //用于session监控页面的用户名显示 需要登录后主动将username注入到session里
-        filterRegistrationBean.addInitParameter("principalSessionName", "username");
-        return filterRegistrationBean;
-    }
-
-    /**
-     * druid数据库连接池监控
-     */
-    @Bean
-    public DruidStatInterceptor druidStatInterceptor() {
-        return new DruidStatInterceptor();
-    }
-
-    @Bean
-    public JdkRegexpMethodPointcut druidStatPointcut() {
-        JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
-        String patterns = "com.stylefeng.guns.modular.*.service.*";
-        //可以set多个
-        druidStatPointcut.setPatterns(patterns);
-        return druidStatPointcut;
-    }
-
-    /**
-     * druid数据库连接池监控
-     */
-    @Bean
-    public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() {
-        BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator();
-        beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class);
-        beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
-        return beanTypeAutoProxyCreator;
-    }
-
-    /**
-     * druid 为druidStatPointcut添加拦截
-     *
-     * @return
-     */
+	
+	@Autowired
+	private GunsProperties gunsProperties;
+	
+	/**
+	 * 增加swagger的支持
+	 */
+	@Override
+	public void addResourceHandlers(ResourceHandlerRegistry registry) {
+		if (gunsProperties.getSwaggerOpen()) {
+			registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+			registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
+		}
+	}
+	
+	/**
+	 * 增加对rest api鉴权的spring mvc拦截器
+	 */
+	//舍弃原有的权限校验功能
+//    @Override
+//    public void addInterceptors(InterceptorRegistry registry) {
+//	    registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**");
+//    }
+	
+	/**
+	 * druidServlet注册
+	 */
+	@Bean
+	public ServletRegistrationBean druidServletRegistration() {
+		ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
+		registration.addUrlMappings("/druid/*");
+		return registration;
+	}
+	
+	/**
+	 * druid监控 配置URI拦截策略
+	 */
+	@Bean
+	public FilterRegistrationBean druidStatFilter() {
+		FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
+		//添加过滤规则.
+		filterRegistrationBean.addUrlPatterns("/*");
+		//添加不需要忽略的格式信息.
+		filterRegistrationBean.addInitParameter(
+				"exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
+		//用于session监控页面的用户名显示 需要登录后主动将username注入到session里
+		filterRegistrationBean.addInitParameter("principalSessionName", "username");
+		return filterRegistrationBean;
+	}
+	
+	/**
+	 * druid数据库连接池监控
+	 */
+	@Bean
+	public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() {
+		BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator();
+		beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class);
+		beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
+		return beanTypeAutoProxyCreator;
+	}
+	
+	/**
+	 * druid 为druidStatPointcut添加拦截
+	 *
+	 * @return
+	 */
     @Bean
     public Advisor druidStatAdvisor() {
         return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor());
     }
+	
+	@Bean
+	public JdkRegexpMethodPointcut druidStatPointcut() {
+		JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
+		String patterns = "com.stylefeng.guns.modular.*.service.*";
+		//可以set多个
+		druidStatPointcut.setPatterns(patterns);
+		return druidStatPointcut;
+	}
+	
+	/**
+	 * druid数据库连接池监控
+	 */
+	@Bean
+	public DruidStatInterceptor druidStatInterceptor() {
+		return new DruidStatInterceptor();
+	}
 
     /**
      * xssFilter注册
@@ -158,19 +160,78 @@
      */
     @Bean
     public DefaultKaptcha kaptcha() {
-        Properties properties = new Properties();
-        properties.put("kaptcha.border", "no");
-        properties.put("kaptcha.border.color", "105,179,90");
-        properties.put("kaptcha.textproducer.font.color", "blue");
-        properties.put("kaptcha.image.width", "125");
-        properties.put("kaptcha.image.height", "45");
-        properties.put("kaptcha.textproducer.font.size", "45");
-        properties.put("kaptcha.session.key", "code");
-        properties.put("kaptcha.textproducer.char.length", "4");
-        properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
-        Config config = new Config(properties);
-        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
-        defaultKaptcha.setConfig(config);
-        return defaultKaptcha;
+	    Properties properties = new Properties();
+	    properties.put("kaptcha.border", "no");
+	    properties.put("kaptcha.border.color", "105,179,90");
+	    properties.put("kaptcha.textproducer.font.color", "blue");
+	    properties.put("kaptcha.image.width", "125");
+	    properties.put("kaptcha.image.height", "45");
+	    properties.put("kaptcha.textproducer.font.size", "45");
+	    properties.put("kaptcha.session.key", "code");
+	    properties.put("kaptcha.textproducer.char.length", "4");
+	    properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
+	    Config config = new Config(properties);
+	    DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
+	    defaultKaptcha.setConfig(config);
+	    return defaultKaptcha;
     }
+	
+	
+	/********************黔云通单点登录拦截器**********************/
+
+//    @Override
+//    public void addViewControllers(ViewControllerRegistry registry) {
+//        registry.addViewController("/index").setViewName("index");
+//    }
+	@Bean
+	public FilterRegistrationBean getOnconMDWebCasFilter() {
+		OnconMDWebCasFilter onconMDWebCasFilter = new OnconMDWebCasFilter();
+		
+		FilterRegistrationBean registrationBean = new FilterRegistrationBean();
+		registrationBean.setFilter(onconMDWebCasFilter);
+		List<String> urlPatterns = new ArrayList<String>();
+		urlPatterns.add("/*");//拦截路径,可以添加多个
+		registrationBean.setUrlPatterns(urlPatterns);
+		registrationBean.setOrder(2);
+		
+		registrationBean.addInitParameter("oncon.com.security.urls", "/api/**");
+		registrationBean.addInitParameter("erp.si-tech.com.cn.noCheckUrl", "/index,/ajaxgetticket.jsp,/ssoAutologin.jsp,/login.jsp,/nologingetuserinfo.jsp,/toautologin.jsp,/autologin.jsp,/remotelogin.jsp,/toremotelogin.jsp,/js/**,/remoteloginajax.jsp");
+		registrationBean.addInitParameter("erp.si-tech.com.cn.nologinstatus", "/*");
+		registrationBean.addInitParameter("erp.si-tech.com.cn.loginstatus", "/login.jsp,/nologingetuserinfo.jsp");
+		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", "172.26.200.34:9180");
+		registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.casServiceUrlForStatic", "http://172.26.200.34:9180/sso-springboot-client/getUserInfo");
+		registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginatUrlForStatic", "");
+		registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginFailedUrlForStatic", "http://172.26.200.34:9180/error.html");
+		
+		
+		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("/api/**");//拦截路径,可以添加多个
+		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;
+	}
 }

--
Gitblit v1.7.1