package com.smtaiserver.smtaiserver.web; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import javax.servlet.Filter; import org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; //import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableCaching //@EnableSwagger2 @ImportResource(locations= {"classpath:spring-config.xml"}) @SuppressWarnings({"rawtypes","unchecked"}) public class SMTAIServerWebConfig extends WebMvcConfigurationSupport { @Bean("proxyFilter") public Filter filter () { return new SMTAIServerWebFilter(); } @Bean public DelegatingFilterProxyRegistrationBean delegatingFilterProxyRegistrationBean() { DelegatingFilterProxyRegistrationBean bean = new DelegatingFilterProxyRegistrationBean("proxyFilter"); bean.addUrlPatterns("/*"); return bean; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////// // druid 配置信息 @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // 这些参数可以在 com.alibaba.druid.support.http.StatViewServlet 的父类 com.alibaba.druid.support.http.ResourceServlet 中找到 Map initParams = new HashMap<>(); initParams.put("loginUsername","admin"); initParams.put("loginPassword","Huishui@2016"); initParams.put("allow",""); //默认就是允许所有访问 //deny:Druid 后台拒绝谁访问,表示禁止此ip访问 // initParams.put("deny","192.168.10.132"); bean.setInitParameters(initParams); return bean; } //2、配置一个web监控的filter @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map initParams = new HashMap<>(); initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////// // swagger 配置信息 /** * 解决swagger-ui.html 404无法访问的问题 */ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { // 解决静态资源无法访问 registry.addResourceHandler("/**") .addResourceLocations("classpath:/static/"); if("true".equals(System.getProperty("swagger_ui", "true"))) { // 解决swagger无法访问 registry.addResourceHandler("/swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); // 解决swagger的js文件无法访问 registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } } }