0

正在寻找具有多个 OidcClients 的示例 quarkus 响应式项目来进行多个服务调用?

例如:DemoProject 想要调用服务 A、B、C、D。DemoProject 使用了 keycloak 授权,授权类型为密码。服务A有OidcClientA,服务B有OidcClientB,服务C有OidcClientC,服务D有OidcClientD。我们如何简单地将 OidcClient 注入特定服务并自动获取特定令牌、授权标头到特定服务?

Quarkus 文档:https ://quarkus.io/guides/security-openid-connect-client

4

2 回答 2

0

这是完全可能的,实际上非常容易。问题是没有正确记录;我不得不进入 quarkus 源代码才能找到它。

在您的 application.properties 中,只需在 quarkus.oidc-client 之后添加您想要的客户端名称。

例如,在命名客户端之前:

quarkus.oidc-client.auth-server-url=<url>

那么就会变成

quarkus.oidc-client.<client-name>.auth-server-url=<url>

然后在注入Tokens或OidcClient的代码中,添加@NamedOidcClient("")。

就是这样!

稍后我将发布一个工作 git。

于 2022-02-24T13:02:53.857 回答
0

我找不到任何示例项目,但我认为您只需要在属性文件中配置命名客户端,它们就可以通过OidcClients类访问。

在这里您可以找到更多信息。

如果您要单独使用每个服务,我建议您在休息客户端前创建一个外观或服务来处理这种复杂性,或者可能为每个服务休息客户端创建一个过滤器

于 2021-09-30T14:32:05.983 回答