Java 如何配置Thorntail 2.5.0.Final以使用KeyClope的JWT令牌授权用户?

Java 如何配置Thorntail 2.5.0.Final以使用KeyClope的JWT令牌授权用户?,java,jwt,keycloak,thorntail,microprofile,Java,Jwt,Keycloak,Thorntail,Microprofile,我无法通过从KeyClope接收的不记名令牌授权用户 任务是授权来自Angular应用程序的用户请求到我的后端Thorntail 2.5.0.Final micro服务。我已经介绍了前端部分,应用程序将Authorization:Bearer{TOKEN}附加到我服务的每个请求中 我尝试过以下两个指南: 使用thorntail Microfile和Keyclope micropfofile jwt分数,但它们似乎都不起作用 @Inject @ConfigProperty(name=“messa

我无法通过从KeyClope接收的不记名令牌授权用户

任务是授权来自Angular应用程序的用户请求到我的后端Thorntail 2.5.0.Final micro服务。我已经介绍了前端部分,应用程序将Authorization:Bearer{TOKEN}附加到我服务的每个请求中

我尝试过以下两个指南:

使用thorntail Microfile和Keyclope micropfofile jwt分数,但它们似乎都不起作用

@Inject
@ConfigProperty(name=“message”)
私有字符串消息;
@注入
私有JsonWebToken调用方Principal;
@得到
@允许角色(“testrole”)
@ApiOperation(value=“Pridobi uporabnike”,notes=“Pridobi vse uporabnike iz baze.”,response=Uporabnik.class)
公共响应getUsers(){
返回Response.ok(callerPrincipal.getRawToken()+”允许读取消息:“+message.build()”;
}
得到了如下的回应

允许null读取消息:非常安全

二,。我尝试的是添加keydape分数,并按照下面的示例通过头发送令牌

我添加了resources/keydape.json

{
  "realm": "Intra",
  "auth-server-url": "https://idm.ra.net/auth",
  "ssl-required": "external",
  "resource": "prenosOSBE",
  "verify-token-audience": true,
  "credentials": {
    "secret": "e9709793-9333-40a7-bb95-2026ad98b568"
  },
  "use-resource-role-mappings": true,
  "confidential-port": 0
}
以及示例中的keydeposecurityContextFilter.java。 如果我试图呼叫我的端点,我会得到401未授权或403禁止,如果我不发送令牌与我的请求

所以我想知道的是,如果我的任务是通过Thorntail微服务上的承载令牌授权用户,那么应该使用哪个分数


microprofile jwt、Keyclope microprofile jwt或Keyclope,以及它工作所需的最低配置是什么?

Keyclope
部分是WildFly的Keyclope适配器,它允许您使用Java EE中的常见安全机制(
web.xml
等)您可以在这里看到一个示例:

微文件jwt
允许您使用裸微文件jwt(即JAX-RS资源上允许的
@RolesAllowed
)。您必须按照MP JWT文档中的描述配置预期的颁发者、其公钥等。您可以在此处看到一个示例:


keydape文件jwt
有点混合。它不公开keydrope适配器,但在内部使用它来验证keydrope颁发的令牌,并通过JWT文件公开令牌。您可以在这里看到一个示例:

密钥斗篷部分是WildFly的密钥斗篷适配器,它允许您使用Java EE中的常见安全机制(
web.xml
等)您可以在这里看到一个示例:

微文件jwt
允许您使用裸微文件jwt(即JAX-RS资源上允许的
@RolesAllowed
)。您必须按照MP JWT文档中的描述配置预期的颁发者、其公钥等。您可以在此处看到一个示例:

keydape文件jwt
有点混合。它不公开keydrope适配器,但在内部使用它来验证keydrope颁发的令牌,并通过JWT文件公开令牌。您可以在此处看到一个示例: