在多租户环境中如何将pac4j用于OAUTH2?

时间:2016-03-16 22:53:14

标签: java tomcat openid-connect oauth2

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

我将使用Open ID Connect,因此我可以获得JWT,但除了使用JWT及其内容以及Open ID Connect的userinfo端点之外,我只是在做一个标准的OAUTH2流程。这里有复杂性:我将重定向到授权的服务器支持多个租户。这意味着我重定向到的URL将在URL中具有租户名称。这意味着代替像

这样的网址
https://authorization.server.com/oauth/authorize

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

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进行授权。

0 个答案:

没有答案