为什么Quarkus JWT在每个端点上都返回未经授权

为什么Quarkus JWT在每个端点上都返回未经授权,jwt,quarkus,microprofile,Jwt,Quarkus,Microprofile,我正试图用JWT保护我的Quarkus API。提供了JWT(代码段:载体eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUI[…]) 以下端点是我测试过的两个端点: @Path(“/quick”) @请求范围 公共类资源{ @注入 jsonwebtokenjwt; @职位 @允许的角色({“magister”}) @路径(“/save”) @使用(“应用程序/json”) @产生(“*/*”) @交易的 公共响应保存(@RequestBody quick-quick){}

我正试图用JWT保护我的Quarkus API。提供了JWT(代码段:
载体eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUI[…]

以下端点是我测试过的两个端点:

@Path(“/quick”)
@请求范围
公共类资源{
@注入
jsonwebtokenjwt;
@职位
@允许的角色({“magister”})
@路径(“/save”)
@使用(“应用程序/json”)
@产生(“*/*”)
@交易的
公共响应保存(@RequestBody quick-quick){}
@得到
@佩尔米塔尔
@路径(“/get/all”)
@生成(“应用程序/json”)
公共响应getAll(){}
两个端点(
@PermitAll
@RolesAllowed
)都在向我返回HTTP
401
(未经授权)

你知道为什么吗?我以为
@PermitAll
允许每个请求?即使我的令牌证明我有所需的角色:

“资源访问”:{
“客户端接口”:{
“角色”:[“魔法师”]
},
...
}
编辑: 发现文件规范上说

"groups":["magister"]
应通过文件映射到角色允许的批注

我的有效载荷如下所示:

{
  [...]
  "resource_access": {
    "client_interface": {
      "roles": [
        "magister"
      ]
    },
    "account": {
      "roles": [
        "manage-account",
        "manage-account-links",
        "view-profile"
      ]
    }
  },
  "scope": "profile email",
  "email_verified": false,
  "groups": [
    "magister"
  ],
  "preferred_username": "magister"
}

但是我仍然会得到401响应

我有同样的问题,我通过添加以下代码来修复它:

@OpenAPIDefinition(
        info = @Info(
                title = "Title API",
                version = "1.0.0",
                description = "Description API"
        ),
        security = @SecurityRequirement(name = "jwt"),
        components = @Components(
                securitySchemes = {
                        @SecurityScheme(
                                securitySchemeName = "jwt",
                                description = "Token JWT",
                                type = SecuritySchemeType.HTTP,
                                scheme = "bearer",
                                bearerFormat = "jwt"
                        )
                }
        )
)

并将Quarkus更新到1.12.0版。最终版

啊,很酷,谢谢!