druid+springboot 配置监控页面,监控慢sql,sql注入,去底部广告

druid+springboot 配置监控页面,监控慢sql,sql注入,去底部广告,第1张

druid+springboot 配置监控页面,监控慢sql,sql注入,去底部广告

meven 依赖

 		 
        
            com.alibaba
            druid-spring-boot-starter
            1.2.6
        

页面访问控制类

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;

import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;


@Service
public class DruidConfig {

    @Value("${spring.druid.stat-view-servlet.login-username}")
    private String name;
    @Value("${spring.druid.stat-view-servlet.login-password}")
    private String password;
    
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
    //配置Druid的监控
    //1、配置一个管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){

        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid

@Configuration
@ConditionalOnWebApplication
@AutoConfigureAfter(DruidDataSourceAutoConfigure.class)
@ConditionalOnProperty(name = "spring.datasource.druid.stat-view-servlet.enabled", havingValue = "true", matchIfMissing = true)
public class RemoveDruidAdConfig {


    
    @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; } }

配置项

spring:
  druid:
    # 配置监控服务器
    stat-view-servlet:
      # 1.1.10以后的版本需要指定为true 不然默认是关闭的就会出现404
      enabled: true
      login-username: admin
      login-password: 123456
      reset-enable: false
      url-pattern: /druid/*
      # 添加IP白名单
      #allow:
      # 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
      #deny:
    web-stat-filter:
      # 添加过滤规则
      url-pattern: /*
      # 忽略过滤格式
      exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
      enabled: true

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5672506.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存