spring-mvc - 如何从 Swagger UI 隐藏 Spring Security OAuth2 端点?

标签 spring-mvc spring-security-oauth2 swagger-ui

我有一个使用 Spring Boot 构建的 API 应用程序。我使用 swagger-springmvc v0.9.5 插件和 Swagger UI 来生成 API 方法的实时文档和交互前端。

我最近在应用程序中引入了 Spring 安全性和 OAuth。这引入了一些出现在 Swagger UI 中的更多部分:

  • authorization-endpoint/oauth/authorize 路径下有一堆可用的 HTTP 操作
  • check-token-endpoint/oauth/check_token 路径下有一堆可用的 HTTP 操作
  • whitelabel-approval-endpoint/oauth/confirm_access 路径下有一堆可用的 HTTP 操作
  • whitelabel-error-endpoint/oauth/error 路径下有一堆可用的 HTTP 操作

我能理解它们的用途,但我不希望它们出现在我的 Swagger UI 前端中。我如何隐藏它们?

com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin 的配置确实提供了 includePatterns() 方法,但无法排除模式。使用 includePatterns() 时,每次有人向 API 添加方法时,都需要记住将其添加到那里,这并不理想。我没有可以与 includePatterns() 一起使用的所有 API 方法的通用前缀。

最佳答案

您只需要接受除 /oauth.* 之外的所有路径

.select()
.paths(input ->
    !PathSelectors.regex("/oauth.*").apply(input) &&
    PathSelectors.any().apply(input))
.build()

关于spring-mvc - 如何从 Swagger UI 隐藏 Spring Security OAuth2 端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745199/

相关文章:

spring-mvc - 在 Spring MVC 中共享 cookie

java - 在 Spring 上下文中覆盖默认的 OAuth2RestTemplate

java - OAuth2 身份验证服务的集成测试?

java - 无法访问 SwaggerUI index.html 页面,但可以打开 api-docs (Spring - Boot)

java - Swagger-ui - 列表参数编码

java - 无法将图片从Android上传到java服务器

java - 表单支持对象的 Map 字段的 BindingResult拒绝值

java - Spring MVC 3.2 : returning Document (xml) with @Responsebody

Spring Security授权代码在获得用户同意后无法获取 token

node.js - Nodejs Swagger 无法向请求添加授权 header