springboot+spring security 集成 swagger2

1. springboot+spring securite 集成swagger2

2. nginx 配置外網不能訪問host/swagger-ui.html     

3 內網通過http://ip:port/ swagger-ui.html方式訪問

此方式可以生成api文檔,動態更新api文檔。

 

集成

1.pom.xml 加上依賴

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.1</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.1</version>
</dependency>

2.新建SwaggerWebMvcConfig.java

@Configuration
public class SwaggerWebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
//        System.out.println("SwaggerWebMvcConfig  addResourceHandlers"  );
    }
}

3.新建SwaggerConfig.java

@Configuration
@EnableWebMvc

@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket buildDocket() {
//        ParameterBuilder aParameterBuilder = new ParameterBuilder();
//        aParameterBuilder
//                .parameterType("header") //參數類型支持header, cookie, body, query etc
//                .name("x-auth-token") //參數名
//                .defaultValue("21423423") //默認值
//                .description("header中token字段測試")
//                .modelRef(new ModelRef("string"))//指定參數值的類型
//                .required(false).build(); //非必需,這裏是全局配置,然而在登陸的時候是不用驗證的
//        List<Parameter> aParameters = new ArrayList<Parameter>();
//        aParameters.add(aParameterBuilder.build());

        return new Docket(DocumentationType.SWAGGER_2).groupName("sj")
        .apiInfo(buildApiInf())
//                .globalOperationParameters(aParameters)
//        .host("localhost:20000")
        .select()
        .apis(RequestHandlerSelectors.basePackage("sjes.gateway.app.controller"))//controller路徑
        .paths(PathSelectors.any()).build();
    }

    private ApiInfo buildApiInf() {
        return new ApiInfoBuilder()
        .title("RestAPI Docs")
        .termsOfServiceUrl("http://www.github.com/kongchen/swagger-maven-plugin")
        .build();

    }
}

4.在WebSecurityConfigurerAdapter裏添加如下代碼

public class SecurityConfig extends WebSecurityConfigurerAdapter {

 
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring(). antMatchers("/swagger-ui.html")
                .antMatchers("/webjars/**")
                .antMatchers("/v2/**")
                .antMatchers("/swagger-resources/**");
    }

}

5.http://localhost:{port}/swagger-ui.html 即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章