我们正在为客户使用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的情况下实现此目的?
答案 0 :(得分:1)
UAA仅支持从默认标识区域切换区域,因为它被视为管理其他标识区域的区域。
您是否可以进一步详细说明为什么不想为此目的使用默认区域。