如何使用basicauth限制对swagger端点的访问?

zynd9foi  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(290)

我在一个有多个端点和api的项目中工作,所以我实现了basicauth作为一种安全措施。
这是我的配置类,它实现了basicauth和一些招摇过市的配置。

@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build()
            .apiInfo(getInfo())
            .securityContexts(Arrays.asList(SecurityContext()))
            .securitySchemes(Arrays.asList(basicAuthScheme()));
}

private ApiInfo getInfo() {
    return new ApiInfoBuilder()
            .title("title")
            .description("desc")
            .version("version")
            .build();
}

private SecurityContext SecurityContext() {
    return SecurityContext.builder()
            .securityReferences(Arrays.asList(basicAuthReference()))
            .forPaths(PathSelectors.any())
            .build();
}

private SecurityScheme basicAuthScheme() {
    return new BasicAuth("basicAuth");
}

private SecurityReference basicAuthReference() {
    return new SecurityReference("basicAuth", new AuthorizationScope[0]);
}
}

在application.yml中,我定义了授权用户凭据。

spring
 security:
  user:
   password: password
   name: admin

但关于localhost:8080/swagger-ui.html,几乎所有我键入的用户登录/密码都被授权。

我该怎么解决这个问题?如果有人能帮忙,我将不胜感激,谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题