在 Cloudfoundry UAA 中跨越身份区域
Crossing identity zones in Cloudfoundry UAA
我们正在为我们的客户使用 UAA 的多租户功能。因此,每个人都有自己的身份区域。我们还希望有一个与默认 UAA 身份区域分开的管理员身份区域。但是,似乎只有默认 UAA 身份区域中的用户才能切换身份区域。
来自IdentiyZoneSwitchingFilter
:
if (IdentityZoneHolder.isUaa() && oAuth2Authentication != null && !oAuth2Authentication.getOAuth2Request().getScope().isEmpty()) {
SecurityContextHolder.getContext().setAuthentication(oAuth2Authentication);
} else {
response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not authorized to switch to IdentityZone with id "+identityZoneId);
return;
}
显然 IdentityZoneHolder.isUaa()
对于除 UAA 身份区域以外的任何内容都是错误的。
过去我们对 UAA 进行了重大修改以支持我们的功能,包括安装我们自己的 IdentityZoneSwitchingFilter
。我们最近升级到 3.3.0 并试图提取我们所有的代码以在我们的东西和 UAA 之间有一个干净的分离。
我们宁愿不修改 UAA,但看起来我们仍需要配置我们自己的 IdentityZoneSwitchingFilter
。这个对吗?是否有另一种方法可以在不修改 UAA 的情况下完成此操作?
UAA 仅支持从默认身份区域切换区域,因为这被视为管理其他身份区域的区域。
您能否进一步详细说明为什么不想为此目的使用默认区域。
我们正在为我们的客户使用 UAA 的多租户功能。因此,每个人都有自己的身份区域。我们还希望有一个与默认 UAA 身份区域分开的管理员身份区域。但是,似乎只有默认 UAA 身份区域中的用户才能切换身份区域。
来自IdentiyZoneSwitchingFilter
:
if (IdentityZoneHolder.isUaa() && oAuth2Authentication != null && !oAuth2Authentication.getOAuth2Request().getScope().isEmpty()) {
SecurityContextHolder.getContext().setAuthentication(oAuth2Authentication);
} else {
response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not authorized to switch to IdentityZone with id "+identityZoneId);
return;
}
显然 IdentityZoneHolder.isUaa()
对于除 UAA 身份区域以外的任何内容都是错误的。
过去我们对 UAA 进行了重大修改以支持我们的功能,包括安装我们自己的 IdentityZoneSwitchingFilter
。我们最近升级到 3.3.0 并试图提取我们所有的代码以在我们的东西和 UAA 之间有一个干净的分离。
我们宁愿不修改 UAA,但看起来我们仍需要配置我们自己的 IdentityZoneSwitchingFilter
。这个对吗?是否有另一种方法可以在不修改 UAA 的情况下完成此操作?
UAA 仅支持从默认身份区域切换区域,因为这被视为管理其他身份区域的区域。
您能否进一步详细说明为什么不想为此目的使用默认区域。