当前位置: 首页 > 知识库问答 >
问题:

当我在OpenAPI定义中将安全方案添加为JWT时,UI中的“试用”功能总是返回401:Unauthorized error

长孙景焕
2023-03-14

我有以下基本的openAPI定义:

openapi: "3.0.0"

info:
  description: >-
    API which tests service
  version: "1.0"
  title: Test Service

servers:
  - url: /
    description: Localhost Server

security:
  - bearerAuth: []

paths:
  /test:
    get:
      operationId: app.test
      responses:
        200:
          description: Test
          content:
            text/plain:
              schema:
                type: string

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

Swagger UI显示“Authorize”选项,我将JWT令牌放入其中,不带“Bearer”关键字,然后单击“Try it out”。答复是:

{
  "detail": "No authorization token provided",
  "status": 401,
  "title": "Unauthorized",
  "type": "about:blank"
}

curl命令具有正确的授权头,如果在终端中执行该命令,它也不起作用。

但是,如果我从OpenAPI定义中删除Security标记,则“试用”和curl命令都可以工作。

有人知道会有什么问题吗?在OpenAPI中使用JWT安全方案时,正确的curl命令是什么?

共有1个答案

窦英武
2023-03-14

我正在我的应用程序中使用JWT身份验证,这是我的curl。我正试图找出如何让OpenApi生成正确的头文件。

curl "${URL}/${ID}/${RESOURCE}" \
    -H "Accept: application/json" \
    -H "X-Requested-With: XMLHttpRequest" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "Content-Type: application/json" | python -m json.tool
 类似资料:
  • 从Spring Boot 1.3.3应用程序中使用Spring Security 4.0.3。 该应用程序有两种类型的HTTP内容:“API”是REST API,“UI”是基于web的二手界面(Thymeleaf Spring web MVC)。 应用程序的REST API的大多数endpoint都是安全的,使用的是Basic,但有些endpoint不是,并且应该始终可用。 简化的配置如下所示:

  • 那还行。然后尝试调用创建用户(或执行其他操作),得到一个401未经授权的错误: 这不是包含令牌的正确方式吗?访问令牌是用于验证其他API调用的令牌吗?管理员帐户的令牌难道不应该用于通过主域对其他客户机的调用进行身份验证吗?是否需要在管理控制台更改主域中的某些设置?任何帮助都很感激。

  • 我正在学习本教程,以便在我的express API中启用jwt身份验证。https://jonathanmh.com/express-passport-json-web-token-jwt-authentication-beginners/ 一个简单的passport.authenticate调用app.get(“/callback”,passport.authenticate(“jwt”,{se

  • 在这个留档Spring Security MVC Test中描述了如何使用Spring Security测试安全的ressource。我遵循了提供的所有步骤,但访问受保护的ressource仍然会返回错误代码401(未经授权)。 这是我的测试课 我的资源服务器配置: 如果你想看看整个项目,你可以在这里找到。我已经尝试了不同的测试运行程序和教程中描述的所有内容,但我找不到一个解决方案,如何在测试期间

  • 我正在使用Spring进行MVC测试 这是我的测试课 这里是MVC配置 这是安全配置 当我运行测试时,测试失败,并显示以下消息: 我知道它失败是因为url受到Spring Security性的保护,但当我运行应用程序时,即使没有经过身份验证,我也可以访问该url。 我做错什么了吗?

  • 我使用springdoc openapi for java SpringBoot RESTful应用程序定义了以下: 是否可以将其全局应用于所有路径,而不必在代码中的任何地方添加注释到注释? 如果是,如何添加排除到不安全的路径?

  • 我在Spring遇到了身份验证问题。我有身份验证筛选器扩展UsernamePasswordAuthenticationFilter。 实现UserDetailsService 和SecurityConfig类 如果我尝试让邮递员发送具有良好凭据的身份验证请求,在调试器模式下一切正常(AuthFilter和UserDetailsService),但服务器返回401并且Authfilter中的成功身份

  • 本文向大家介绍Android标题栏中添加返回按钮功能,包括了Android标题栏中添加返回按钮功能的使用技巧和注意事项,需要的朋友参考一下 标题栏中的返回按钮在实际使用中用的比较多,今天就来讲讲我在项目开发中的使用经历,话不多说,还是直接上源码,上源码是最给力的。 一、 编写自定义类 二 、 xml资源,在layout中定义custom_title 三 、 在需要调用的activity中调用 四