1

我想在 Java 应用程序中使用pac4j来创建 Tomcat 过滤器或 Tomcat 阀。过滤器或阀门必须支持使用标准 OAUTH2 授权代码流的 OpenID Connect。更好的是在j2e-pac4j之上构建来执行此操作,但我不能在 j2e-pac4j 中使用 OAUTH2 过滤器。我的过滤器或阀门需要通过添加 HTTP 标头来修改请求对象。过滤器/阀门后面的网络应用程序需要 HTTP 标头,它是第三方的,所以我无法更改它。

我将使用 Open ID Connect 以便获取 JWT,但除了使用 JWT 及其内容以及可能是 Open ID Connect 的 userinfo 端点之外,我只是在做一个标准的 OAUTH2 流程。复杂之处在于:我将重定向到授权的服务器支持多个租户。这意味着我重定向到的 URL 将在 URL 中包含租户名称。这意味着,而不是像 URL

https://authorization.server.com/oauth/authorize

(请注意,?response_type=code&scope=openid&client_id=myclientname&state=nonce&redirect_uri=...为清楚起见,请省略。)我将被要求重定向到以下 URL 之一:

https://authorization.server.com/tenantname/oauth/authorize
https://authorization.server.com/oauth/tenantname/authorize
https://authorization.server.com/oauth/authorize?realm=tenantname

您如何使用 pac4j 或更好的 j2e-pac4j 来做到这一点?我被告知 pac4j 将不支持这一点,每个客户端都可能使用不同的重定向 URL 进行授权。

4

0 回答 0