From a467a2345975c55af218de4aaa47c48720662c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90oschina?= <115889198@qq.com> Date: Fri, 24 May 2019 22:17:55 +0800 Subject: [PATCH] =?UTF-8?q?!2=20=E5=8E=BB=E9=99=A4druid=20=E5=BA=95?= =?UTF-8?q?=E9=83=A8=E5=B9=BF=E5=91=8A=20Merge=20pull=20request=20!2=20fro?= =?UTF-8?q?m=20ok=E5=85=8B=E9=87=8C=E6=96=AF=E6=B1=80/master?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/druid/RemoveDruidAdConfig.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/main/java/com/fc/test/common/druid/RemoveDruidAdConfig.java diff --git a/src/main/java/com/fc/test/common/druid/RemoveDruidAdConfig.java b/src/main/java/com/fc/test/common/druid/RemoveDruidAdConfig.java new file mode 100644 index 0000000..20639fd --- /dev/null +++ b/src/main/java/com/fc/test/common/druid/RemoveDruidAdConfig.java @@ -0,0 +1,79 @@ +package com.fc.test.common.druid; + +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 java.io.IOException; + + +/** + * 类名称:RemoveDruidAdConfig + * 类描述: 去除druid底部的广告配置类 + * + * @author: taohongchao + * 创建时间:2019/2/15 13:14 + * Version 1.0 + */ + +@Configuration +@ConditionalOnWebApplication +@AutoConfigureAfter(DruidDataSourceAutoConfigure.class) +@ConditionalOnProperty(name = "spring.datasource.druid.stat-view-servlet.enabled", havingValue = "true", matchIfMissing = true) +public class RemoveDruidAdConfig { + + + /** + * 方法名: removeDruidAdFilterRegistrationBean + * 方法描述: 除去页面底部的广告 + * @param properties + * @return org.springframework.boot.web.servlet.FilterRegistrationBean + * @throws + */ + @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 { + chain.doFilter(request, response); + // 重置缓冲区,响应头不会被重置 + response.resetBuffer(); + // 获取common.js + String text = Utils.readFromResource(filePath); + // 正则替换banner, 除去底部的广告信息 + text = text.replaceAll("
", ""); + text = text.replaceAll("powered.*?shrek.wang", ""); + response.getWriter().write(text); + } + + @Override + public void destroy() { + } + }; + FilterRegistrationBean registrationBean = new FilterRegistrationBean(); + registrationBean.setFilter(filter); + registrationBean.addUrlPatterns(commonJsPattern); + return registrationBean; + } +} + -- Gitee