2016-05-10 31 views
1

我們爲客戶使用UAA的多租戶功能。因此,每個人都有自己的身份區。我們還希望將管理員身份區域與默認的UAA身份區域分開。但是,似乎只有默認的UAA身份區域中的用戶才能夠切換身份區域。Cloudfoundry中的穿越身份區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

UAA僅支持從默認標識區域進行區域切換,因爲它被視爲從其他標識區域進行管理的區域。

您可否詳細說明爲什麼不想爲此使用默認區域。

+0

感謝您的回覆。這是我的預期。我們需要多個基於子域的管理分區,能夠創建和管理其他分區。我通過使用管理客戶端憑據來代表用戶執行操作來解決此問題。它沒有我想要的那麼優雅,但它現在可以工作。 –