Swagger 使用注释的招摇过市身份验证

Swagger 使用注释的招摇过市身份验证,swagger,swagger-ui,swagger-2.0,Swagger,Swagger Ui,Swagger 2.0,我试图在我的swagger ui中有一个基本的身份验证。我使用swagger 2.0.5作为maven库。使用swagger配置类创建docket Api和其他配置 ` public类SwaggerConfig{ /** *每一个DocketBean都是由swagger mvc框架挑选的,允许多个 *招摇过市组,即相同的代码基多个招摇过市资源列表。 */ @豆子 公开摘要api(){ AuthorizationScope[]authScopes=新的AuthorizationScope[1];

我试图在我的swagger ui中有一个基本的身份验证。我使用swagger 2.0.5作为maven库。使用swagger配置类创建docket Api和其他配置

`

public类SwaggerConfig{
/**
*每一个DocketBean都是由swagger mvc框架挑选的,允许多个
*招摇过市组,即相同的代码基多个招摇过市资源列表。
*/
@豆子
公开摘要api(){
AuthorizationScope[]authScopes=新的AuthorizationScope[1];
authScopes[0]=新的AuthorizationScopeBuilder()
.范围(“”)
.build();
SecurityReference SecurityReference=SecurityReference.builder()
.参考(“basicAuth”)
.scopes(authScopes)
.build();
ArrayList引用=新的ArrayList(1);
参考。添加(安全参考);
ArrayList SecurityContext=新的ArrayList(1);
添加(SecurityContext.builder().securityReferences(reference.build());
ArrayList auth=新的ArrayList(1);
授权添加(新BasicAuth(“BasicAuth”);
Documentation Doc=new DocumentationBuilder().basePath(“/swagger ui.html”).build();
返回新摘要(DocumentationType.SWAGGER_2)
.securitySchemes(认证)
.SecurityContext(SecurityContext)
.选择()
.api(RequestHandlerSelectors.basePackage(“com.toyota.tme.consumerapi.rest”))
.path(路径选择器.any())
.build()
.apinfo(apinfo());
}
/*@Bean
公共摘要customDocket(){
返回新摘要(DocumentationType.SWAGGER_2)
.选择()
.api(RequestHandlerSelectors.any())
.path(PathSelectors.regex(“/v1/*”)
.build();
}*/
私有apinfo apinfo(){
返回新的ApiInfoBuilder()
.标题(“消费者API”)
.description(“基于Azure的消费者API”)
.联系人(“CarIT”)
.build();
}
}`
我的问题是,我在rest服务中使用授权注释来启用基本身份验证

    @Api(value = "/ping", tags = "1.Ping", description = "API",authorizations = {@Authorization(value="basicAuth")})
@RestController
@RequestMapping("/api")
public class ping {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());
    @RequestMapping(path = "/ping", method = RequestMethod.GET,
            produces = MediaType.TEXT_HTML_VALUE)
    @ApiOperation(value = "Ping service", httpMethod = "GET", response = String.class,
            produces = "text/html", notes = "ping service",authorizations = {@Authorization(value="basicAuth")})
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Success", response = String.class),
            @ApiResponse(code = 400, message = "Bad request"),
            @ApiResponse(code = 401, message = "Unauthorized"),
            @ApiResponse(code = 404, message = "Not Found"),
            @ApiResponse(code = 409, message = "Conflict"),
            @ApiResponse(code = 503, message = "Dependent System(s) are unavailable"),
            @ApiResponse(code = 500, message = "Unknown server Error occurred")})
    public ResponseEntity<String> ping() {
        this.logger.info("springframework api :Ping Request received for ConsumerAPI");
        return new ResponseEntity<>(ApplicationConstants.Ping, HttpStatus.OK);
    }
}
@Api(value=“/ping”,tags=“1.ping”,description=“Api”,authorizations={@Authorization(value=“basicAuth”)}
@RestController
@请求映射(“/api”)
公开课{
私有最终记录器Logger=LoggerFactory.getLogger(this.getClass());
@RequestMapping(path=“/ping”,method=RequestMethod.GET,
products=MediaType.TEXT\u HTML\u值)
@ApiOperation(value=“Ping service”,httpMethod=“GET”,response=String.class,
products=“text/html”,notes=“ping service”,authorizations={@Authorization(value=“basicAuth”)}
@ApiResponses(值={
@ApiResponse(code=200,message=“Success”,response=String.class),
@ApiResponse(代码=400,message=“错误请求”),
@ApiResponse(code=401,message=“Unauthorized”),
@ApiResponse(代码=404,message=“未找到”),
@ApiResponse(代码=409,message=“Conflict”),
@ApiResponse(代码=503,消息=“依赖系统不可用”),
@ApiResponse(代码=500,消息=“发生未知服务器错误”)}
公众反应平(){
this.logger.info(“SpringFrameworkAPI:Ping请求接收到ConsumerRapi”);
返回新的响应状态(ApplicationConstants.Ping,HttpStatus.OK);
}
}

但此代码不起作用。我无法看到Swagger请求的任何授权。请在这方面为我提供帮助。通过将值授权从Api移动到ApiOperation注释,解决了这个问题。不漂亮,但工作

    @Api(value = "/ping", tags = "1.Ping", description = "API",authorizations = {@Authorization(value="basicAuth")})
@RestController
@RequestMapping("/api")
public class ping {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());
    @RequestMapping(path = "/ping", method = RequestMethod.GET,
            produces = MediaType.TEXT_HTML_VALUE)
    @ApiOperation(value = "Ping service", httpMethod = "GET", response = String.class,
            produces = "text/html", notes = "ping service",authorizations = {@Authorization(value="basicAuth")})
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Success", response = String.class),
            @ApiResponse(code = 400, message = "Bad request"),
            @ApiResponse(code = 401, message = "Unauthorized"),
            @ApiResponse(code = 404, message = "Not Found"),
            @ApiResponse(code = 409, message = "Conflict"),
            @ApiResponse(code = 503, message = "Dependent System(s) are unavailable"),
            @ApiResponse(code = 500, message = "Unknown server Error occurred")})
    public ResponseEntity<String> ping() {
        this.logger.info("springframework api :Ping Request received for ConsumerAPI");
        return new ResponseEntity<>(ApplicationConstants.Ping, HttpStatus.OK);
    }
}