package com.common.configure; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.fastjson.JSONObject; import com.common.core.utils.SecretsManagerUtils; import com.common.filter.RequestCachingFilter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; /** * @author 廖振钦 * @date 2022-01-14 */ @Configuration public class FilterConfig { // @Bean public RequestCachingFilter requestCachingFilter() { return new RequestCachingFilter(); } // @Bean public FilterRegistrationBean requestCachingFilterRegistration( RequestCachingFilter requestCachingFilter) { FilterRegistrationBean bean = new FilterRegistrationBean(requestCachingFilter); bean.setOrder(1); return bean; } @Bean public FilterRegistrationBean regFilter() { FilterRegistrationBean regFilter = new FilterRegistrationBean(new com.alibaba.druid.support.http.WebStatFilter()); regFilter.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); regFilter.addUrlPatterns("/*"); return regFilter ; } @Autowired private Environment env; @Autowired private SecretsManagerUtils secretsManagerUtils; @Bean public ServletRegistrationBean druidStatViewServlet() { ServletRegistrationBean registrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); registrationBean.addInitParameter("allow", "");// IP白名单 (没有配置或者为空,则允许所有访问) registrationBean.addInitParameter("deny", "");// IP黑名单 (存在共同时,deny优先于allow) JSONObject object = secretsManagerUtils.getSecret(env.getProperty("aws.secrets.mysql")); String username = object.getString("username"); String password = object.getString("password"); registrationBean.addInitParameter("loginUsername", username); registrationBean.addInitParameter("loginPassword", password); registrationBean.addInitParameter("resetEnable", "false"); return registrationBean; } }