Pu Zhibing
5 天以前 115da2295af1c02cde311f183d30d1c061c3795e
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
@@ -36,94 +36,92 @@
 */
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Autowired
    private GunsProperties gunsProperties;
    /**
     * 增加swagger的支持
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        if (gunsProperties.getSwaggerOpen()) {
            registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    }
    /**
     * 增加对rest api鉴权的spring mvc拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**")
                .excludePathPatterns("/api/placeOrder/notifyUrl")
                .excludePathPatterns("/api/placeOrder/notifyUrlOne");
    }
    /**
     * druidServlet注册
     */
    @Bean
    public ServletRegistrationBean druidServletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
        registration.addUrlMappings("/druid/*");
        return registration;
    }
    /**
     * druid监控 配置URI拦截策略
     */
    @Bean
    public FilterRegistrationBean druidStatFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        //添加过滤规则.
        filterRegistrationBean.addUrlPatterns("/*");
        //添加不需要忽略的格式信息.
        filterRegistrationBean.addInitParameter(
                "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
        //用于session监控页面的用户名显示 需要登录后主动将username注入到session里
        filterRegistrationBean.addInitParameter("principalSessionName", "username");
        return filterRegistrationBean;
    }
    /**
     * druid数据库连接池监控
     */
    @Bean
    public DruidStatInterceptor druidStatInterceptor() {
        return new DruidStatInterceptor();
    }
    @Bean
    public JdkRegexpMethodPointcut druidStatPointcut() {
        JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
        String patterns = "com.stylefeng.guns.modular.*.service.*";
        //可以set多个
        druidStatPointcut.setPatterns(patterns);
        return druidStatPointcut;
    }
    /**
     * druid数据库连接池监控
     */
    @Bean
    public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() {
        BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator();
        beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class);
        beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
        return beanTypeAutoProxyCreator;
    }
    /**
     * druid 为druidStatPointcut添加拦截
     *
     * @return
     */
   @Autowired
   private GunsProperties gunsProperties;
   /**
    * 增加swagger的支持
    */
   @Override
   public void addResourceHandlers(ResourceHandlerRegistry registry) {
      if (gunsProperties.getSwaggerOpen()) {
         registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
         registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
      }
   }
   /**
    * 增加对rest api鉴权的spring mvc拦截器
    */
   @Override
   public void addInterceptors(InterceptorRegistry registry) {
      registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**");
   }
   /**
    * druidServlet注册
    */
   @Bean
   public ServletRegistrationBean druidServletRegistration() {
      ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
      registration.addUrlMappings("/druid/*");
      return registration;
   }
   /**
    * druid监控 配置URI拦截策略
    */
   @Bean
   public FilterRegistrationBean druidStatFilter() {
      FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
      //添加过滤规则.
      filterRegistrationBean.addUrlPatterns("/*");
      //添加不需要忽略的格式信息.
      filterRegistrationBean.addInitParameter(
            "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
      //用于session监控页面的用户名显示 需要登录后主动将username注入到session里
      filterRegistrationBean.addInitParameter("principalSessionName", "username");
      return filterRegistrationBean;
   }
   /**
    * druid数据库连接池监控
    */
   @Bean
   public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() {
      BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator();
      beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class);
      beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
      return beanTypeAutoProxyCreator;
   }
   /**
    * druid 为druidStatPointcut添加拦截
    *
    * @return
    */
    @Bean
    public Advisor druidStatAdvisor() {
        return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor());
    }
   @Bean
   public JdkRegexpMethodPointcut druidStatPointcut() {
      JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
      String patterns = "com.stylefeng.guns.modular.*.service.*";
      //可以set多个
      druidStatPointcut.setPatterns(patterns);
      return druidStatPointcut;
   }
   /**
    * druid数据库连接池监控
    */
   @Bean
   public DruidStatInterceptor druidStatInterceptor() {
      return new DruidStatInterceptor();
   }
    /**
     * xssFilter注册
@@ -158,19 +156,19 @@
     */
    @Bean
    public DefaultKaptcha kaptcha() {
        Properties properties = new Properties();
        properties.put("kaptcha.border", "no");
        properties.put("kaptcha.border.color", "105,179,90");
        properties.put("kaptcha.textproducer.font.color", "blue");
        properties.put("kaptcha.image.width", "125");
        properties.put("kaptcha.image.height", "45");
        properties.put("kaptcha.textproducer.font.size", "45");
        properties.put("kaptcha.session.key", "code");
        properties.put("kaptcha.textproducer.char.length", "4");
        properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
        Config config = new Config(properties);
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
       Properties properties = new Properties();
       properties.put("kaptcha.border", "no");
       properties.put("kaptcha.border.color", "105,179,90");
       properties.put("kaptcha.textproducer.font.color", "blue");
       properties.put("kaptcha.image.width", "125");
       properties.put("kaptcha.image.height", "45");
       properties.put("kaptcha.textproducer.font.size", "45");
       properties.put("kaptcha.session.key", "code");
       properties.put("kaptcha.textproducer.char.length", "4");
       properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
       Config config = new Config(properties);
       DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
       defaultKaptcha.setConfig(config);
       return defaultKaptcha;
    }
}