From 3d5f6646c4a51d43822d4b0c679e94c91bc66e3d Mon Sep 17 00:00:00 2001 From: Jie Zheng <201507802@qq.com> Date: Sat, 11 Jan 2025 13:44:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0Druid=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=B9=B6=E7=A7=BB=E9=99=A4=E5=B9=BF=E5=91=8A=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhengjie/config/RemoveDruidAdConfig.java | 78 +++++++++++++++++++ eladmin/pom.xml | 2 +- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 eladmin/eladmin-common/src/main/java/me/zhengjie/config/RemoveDruidAdConfig.java diff --git a/eladmin/eladmin-common/src/main/java/me/zhengjie/config/RemoveDruidAdConfig.java b/eladmin/eladmin-common/src/main/java/me/zhengjie/config/RemoveDruidAdConfig.java new file mode 100644 index 0000000..f432de4 --- /dev/null +++ b/eladmin/eladmin-common/src/main/java/me/zhengjie/config/RemoveDruidAdConfig.java @@ -0,0 +1,78 @@ +package me.zhengjie.config; + +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; +import com.alibaba.druid.util.Utils; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @author Zheng Jie + * @description + * @date 2025-01-11 + **/ +@Configuration +@SuppressWarnings("all") +@ConditionalOnWebApplication +@AutoConfigureAfter(DruidDataSourceAutoConfigure.class) +@ConditionalOnProperty(name = "spring.datasource.druid.stat-view-servlet.enabled", + havingValue = "true", matchIfMissing = true) +public class RemoveDruidAdConfig { + + /** + * 方法名: removeDruidAdFilterRegistrationBean + * 方法描述 除去页面底部的广告 + * @param properties com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties + * @return org.springframework.boot.web.servlet.FilterRegistrationBean + */ + @Bean + public FilterRegistrationBean removeDruidAdFilterRegistrationBean(DruidStatProperties properties) { + + // 获取web监控页面的参数 + DruidStatProperties.StatViewServlet config = properties.getStatViewServlet(); + // 提取common.js的配置路径 + String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*"; + String commonJsPattern = pattern.replaceAll("\\*", "js/common.js"); + + final String filePath = "support/http/resources/js/common.js"; + + //创建filter进行过滤 + Filter filter = new Filter() { + @Override + public void init(FilterConfig filterConfig) throws ServletException {} + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + HttpServletRequest httpRequest = (HttpServletRequest) request; + HttpServletResponse httpResponse = (HttpServletResponse) response; + if (httpRequest.getRequestURI().endsWith("js/common.js")) { + // 获取common.js + String text = Utils.readFromResource(filePath); + // 正则替换banner, 除去底部的广告信息 + text = text.replaceAll("
", ""); + text = text.replaceAll("powered by.*?shrek.wang", ""); + httpResponse.setContentType("application/javascript"); + httpResponse.setCharacterEncoding("UTF-8"); + httpResponse.getWriter().write(text); + } else { + chain.doFilter(request, response); + } + } + @Override + public void destroy() {} + }; + FilterRegistrationBean registrationBean = new FilterRegistrationBean(); + registrationBean.setFilter(filter); + registrationBean.addUrlPatterns(commonJsPattern); + return registrationBean; + } +} diff --git a/eladmin/pom.xml b/eladmin/pom.xml index db42124..8fa0287 100644 --- a/eladmin/pom.xml +++ b/eladmin/pom.xml @@ -34,7 +34,7 @@ 1.8 2.9.2 1.2.83 - 1.2.8 + 1.2.11 2.11.1