我一直试图想出一种方法,我可以使用Oauth 2.0在登录屏幕后面锁定我的swagger-ui.html页面,最终能够通过JWT识别用户。
我已经设法弄清楚如何包含一个授权按钮,但我希望在成功登录之前不要看到API方法。这是解决这个问题的最佳方法,只是为了重定向到一个带登录屏幕的单独页面,是否有一种简单的方法可以在Swagger配置文件中执行此操作?
您需要添加一个中间件来查找当前有效的令牌(可能是JWT或其他任何东西)。如果无效,请通过您的身份验证机制发送用户(可能是Oauth2或其他)。这不是SwaggerUI独有的 - 它适用于任何Web应用程序。
这个答案讨论了如何使用Spring MVC过滤器来检查会话令牌:https://stackoverflow.com/a/21592143/1168588
确定令牌是否有效的机制将特定于您的实现。 JWT通过自包含验证信息使这一过程变得简单。
(注意 - OAuth和JWT不是互斥的 - OAuth是令牌交换协议,JWT是令牌格式)。