示例项目在缺少的JWT上不返回401

问题描述

我刚刚从以下网址下载了示例项目:https://start.microprofile.io/ 我不知道我是否误解了一些东西,但是如果我对以HTTP 401注释的方法进行请求,我会期望得到@RolesAllowed("protected")

完成设置: 申请

@ApplicationPath("/data")
@LoginConfig(authMethod = "MP-JWT",realmName = "jwt-jaspi")
@DeclareRoles({"protected"})
public class DemoRestApplication extends Application {
}

端点

@Path("/protected")
@RequestScoped
public class ProtectedController {

    @Inject
    @Claim("custom-value")
    private ClaimValue<String> custom;

    @GET
    @RolesAllowed("protected")
    public String getJWTBasedValue() {
        return "Protected Resource; Custom value : " + custom.getValue();
    }
}

期望: 不带任何标题调用GET http://localhost:8080/data/protected应该返回HTTP 401

使用有效的标题调用它:

GET http://localhost:8080/data/protected
authorization: Bearer {JWT}

将返回有效的响应。

如果有人想尝试,我可以通过以下方式下载它:

  • Wildfly
  • Java SE 11
  • JWT-Auth

这是干净的开始:(与intellij完成)

GET http://localhost:8180/data/protected/

HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: application/octet-stream
Content-Length: 39
Date: Thu,08 Oct 2020 22:31:39 GMT

Protected Resource; Custom value : null

Response code: 200 (OK); Time: 215ms; Content length: 39 bytes

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)