Druidの下にある阿里雲の広告を削除します.
現在のところ、druid-1.1.14のwebコンソールは依然として阿里雲の広告が存在しています.本文はフィルタを通して広告テキストをブロックします.
ポジショニング問題
広告を生成するJSファイルは
ソースを確認してください.
問題を解決する
ポジショニング問題
広告を生成するJSファイルは
druid-1.1.14.jar/support/http/resources/js/common.js
にあります.ソースを確認してください.
buildFooter
メソッドによってインプラントされ、init
方法で呼び出されました.問題を解決する
/**
* Druid
*
* @author BBF
*/
@Configuration
@AutoConfigureAfter(DruidDataSourceAutoConfigure.class)
public class DruidConfig {
/**
* common.js ,druid-1.1.14
*/
private static final String FILE_PATH = "support/http/resources/js/common.js";
/**
* ,
*/
private static final String ORIGIN_JS = "this.buildFooter();";
/**
*
*/
private static final String NEW_JS = "//this.buildFooter();";
/**
* Druid
*
* @param properties DruidStatProperties
* @return {@link org.springframework.boot.web.servlet.FilterRegistrationBean}
*/
@Bean
@ConditionalOnWebApplication
@ConditionalOnProperty(name = "spring.datasource.druid.stat-view-servlet.enabled", havingValue = "true")
public FilterRegistrationBean removeDruidAdFilter(
DruidStatProperties properties) throws IOException {
// web
DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
// common.js
String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
// common.js
String text = Utils.readFromResource(FILE_PATH);
// this.buildFooter();
final String newJs = text.replace(ORIGIN_JS, NEW_JS);
FilterRegistrationBean registration = new FilterRegistrationBean<>();
registration.setFilter(new RemoveAdFilter(newJs));
registration.addUrlPatterns(commonJsPattern);
return registration;
}
/**
* druid
*
* @author BBF
*/
private class RemoveAdFilter implements Filter {
private final String newJs;
public RemoveAdFilter(String newJS) {
this.newJs = newJS;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
chain.doFilter(request, response);
// ,
response.resetBuffer();
response.getWriter().write(newJs);
}
}
}