Springboot整合swagger,以及开启环境、账号权限验证访问

时间:2025-03-18 15:12:08
@Configuration @EnableSwagger2 @EnableSwaggerBootstrapUI//加密码 -可自选 @Profile({"dev","test"})//测试环境可访问 -可自选 public class Swagger2Config { /** * 设置swagger跨域,提供给service调用 * @return */ @Bean public WebMvcConfigurer crossConfigurer(){ WebMvcConfigurer webMvcConfigurerAdapter = new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/v2/api-docs"); registry.addMapping("/**"); } }; return webMvcConfigurerAdapter; } @Bean public Docket createRestApi(){ ParameterBuilder parameterBuilder = new ParameterBuilder(); parameterBuilder.name("x-access-token").description("令牌") .name("languageCode").description("语言") .name("Authorization").description("token令牌") .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); ArrayList<Parameter> objects = new ArrayList<>(); objects.add(parameterBuilder.build()); return new Docket(DocumentationType.SWAGGER_2) .select() //基础扫描包路径 .apis(RequestHandlerSelectors.basePackage("")) .paths(PathSelectors.any()) .build() .globalOperationParameters(objects) .apiInfo(apiInfo()); } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("java") .description("java项目打包成docker images并运行") .version("1.0.0") .build(); } private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); // 1允许任何域名使用 corsConfiguration.addAllowedOrigin("*"); // 2允许任何头 corsConfiguration.addAllowedHeader("*"); // 3允许任何方法(post、get等) corsConfiguration.addAllowedMethod("*"); return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", buildConfig()); return new CorsFilter(source); } }