From f2530067b6cd16a87b76190cf524d2ed75bf9592 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 11 十月 2025 14:26:54 +0800
Subject: [PATCH] 集成中台及正联功能

---
 management/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 97 insertions(+), 0 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/management/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
index a94beb7..c0fdd46 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
+++ b/management/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,9 @@
 
     @Autowired
     private GunsProperties gunsProperties;
+
+    @Value("${spring.profiles.active}")
+    private String activeProfile;
 
     /**
      * 增加swagger的支持
@@ -173,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://test-qncx.sitechcloud.com:443/djadmin/login");
+        }
+        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/djadmin/login");
+        }
+        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;
+    }
 }

--
Gitblit v1.7.1