在Cloudfoundry UAA中跨越身份区域

时间:2016-05-10 15:04:05

标签: cloudfoundry 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的情况下实现此目的?

1 个答案:

答案 0 :(得分:1)

UAA仅支持从默认标识区域切换区域,因为它被视为管理其他标识区域的区域。

您是否可以进一步详细说明为什么不想为此目的使用默认区域。