我有一个使用 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/