如何使用 MicroProfile Rest 客户端在 Quarkus 应用程序中传播授权 header?
How can the Authorization header be propagated in Quarkus Apps with the MicroProfile Rest Client?
我有两个使用 Quarkus 1.5 实现的微服务。2.Final 具有受 @RolesAllowed("user") 保护的端点。当我使用有效令牌直接调用端点时,这些端点工作。
当我使用 MicroProfile Rest Client(同步模式)调用第二个微服务时,缺少授权 header。
根据 MicroProfile 规范 (https://download.eclipse.org/microprofile/microprofile-rest-client-1.3/microprofile-rest-client-1.3.html),以下设置应该可以解决问题:
org.eclipse.microprofile.rest.client.propagateHeaders=授权
然而它不起作用。我也尝试了这些但没有成功。
“mp.rest.client.propagateHeaders=授权”、“resteasy.role.based.security=true”和“quarkus.smallrye-jwt.enabled=true”。
当我手动将 header 添加到 Rest Client 时它起作用了,但我的理解是这应该自动完成。
我做错了什么吗?这可能是 Quarkus 1.5 中嵌入的 MicroProfile 版本的问题。2.Final?
谢谢!
根据规范,要使 mp.rest.client.propagateHeaders
属性 正常工作,您需要在定义外部服务的接口上指定 @RegisterClientHeaders
。
菲利普克鲁格回答了问题。需要添加的只是服务中的此设置,该设置由另一个服务调用。
resteasy.role.based.security=真
我有两个使用 Quarkus 1.5 实现的微服务。2.Final 具有受 @RolesAllowed("user") 保护的端点。当我使用有效令牌直接调用端点时,这些端点工作。
当我使用 MicroProfile Rest Client(同步模式)调用第二个微服务时,缺少授权 header。
根据 MicroProfile 规范 (https://download.eclipse.org/microprofile/microprofile-rest-client-1.3/microprofile-rest-client-1.3.html),以下设置应该可以解决问题: org.eclipse.microprofile.rest.client.propagateHeaders=授权
然而它不起作用。我也尝试了这些但没有成功。 “mp.rest.client.propagateHeaders=授权”、“resteasy.role.based.security=true”和“quarkus.smallrye-jwt.enabled=true”。
当我手动将 header 添加到 Rest Client 时它起作用了,但我的理解是这应该自动完成。
我做错了什么吗?这可能是 Quarkus 1.5 中嵌入的 MicroProfile 版本的问题。2.Final?
谢谢!
根据规范,要使 mp.rest.client.propagateHeaders
属性 正常工作,您需要在定义外部服务的接口上指定 @RegisterClientHeaders
。
菲利普克鲁格回答了问题。需要添加的只是服务中的此设置,该设置由另一个服务调用。
resteasy.role.based.security=真