Swagger UI 授权按钮不出现

Bac*_*con 8 java spring swagger-ui

编辑:我正在使用 Swagger UI 2.5.0 并尝试将其配置为使用 oauth 身份验证。根据我从宠物商店示例和我读过的其他文章中了解到的情况,如果我在我的文档中包含安全模式和上下文,它应该自动显示按钮 - 是这种情况吗?如果是这样,我还缺少什么?

我的 API 在 swagger UI 中显示正常 - 只是缺少授权按钮(以及任何授权方式)

@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .groupName("api")
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example"))
            .paths(PathSelectors.regex("/api.*"))
            .build()
            .securitySchemes(newArrayList(securitySchema()))
            .securityContexts(newArrayList(securityContext()));
}


public static final String securitySchemaOAuth2 = "oauth2schema";
public static final String authorizationScopeGlobal = "global";
public static final String authorizationScopeGlobalDesc ="accessEverything";

private OAuth securitySchema() {
    AuthorizationScope authorizationScope = new AuthorizationScope(authorizationScopeGlobal, authorizationScopeGlobal);
    LoginEndpoint loginEndpoint = new LoginEndpoint("http://localhost:9999/sso/login");
    GrantType grantType = new ImplicitGrant(loginEndpoint, "access_token");
    return new OAuth(securitySchemaOAuth2, newArrayList(authorizationScope), newArrayList(grantType));
}

private SecurityContext securityContext() {
    return SecurityContext.builder()
            .securityReferences(defaultAuth())
            .forPaths(PathSelectors.regex("/api.*"))
            .build();
}

private List<SecurityReference> defaultAuth() {
    AuthorizationScope authorizationScope
            = new AuthorizationScope(authorizationScopeGlobal, authorizationScopeGlobalDesc);
    AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
    authorizationScopes[0] = authorizationScope;
    return newArrayList(
            new SecurityReference(securitySchemaOAuth2, authorizationScopes));
}
Run Code Online (Sandbox Code Playgroud)