com.enerbos.cloud.resource.config.SwaggerConfig.java Source code

Java tutorial

Introduction

Here is the source code for com.enerbos.cloud.resource.config.SwaggerConfig.java

Source

package com.enerbos.cloud.resource.config;

import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * All rights Reserved, Designed By ?
 * Copyright:    Copyright(C) 2015-2017
 * Company   ???
 *
 * @author hk
 * @version 1.0
 * @date 2017-01-05 16:06
 * @Description
 */
@Configuration
public class SwaggerConfig {

    /**
     * ?
     */
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1
        corsConfiguration.addAllowedHeader("*"); // 2
        corsConfiguration.addAllowedMethod("*"); // 3
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }

    @Bean
    public Docket swaggerSpringMvcPlugin() {
        return new Docket(DocumentationType.SWAGGER_2)
                .useDefaultResponseMessages(false).apiInfo(apiInfo()).select().paths(Predicates
                        .and(Predicates.not(PathSelectors.regex("/error.*")), PathSelectors.regex("/auth/.*")))
                .build();
    }

    private ApiInfo apiInfo() {
        Contact contact = new Contact("hk", null, "hk@enerbos.com");
        return new ApiInfo("???", //
                "???", //?
                "1.0.0", //
                "NO terms of service", contact, //
                "The Apache License, Version 2.0", //
                "http://www.apache.org/licenses/LICENSE-2.0.html"//
        );
    }
}