任何人能提供有關如何使用JAAS LoginContext將做一個認證對多個KDC /域組合建議。換句話說,如果嘗試1對領域A失敗,請嘗試領域B.
類似下面的僞代碼。
一如既往,非常感謝任何幫助。
view plaincopy to clipboardprint?
[realms]
some.address.for.auth.one
{
kdc = some.address.one
}
some.address.for.auth.two
{
kdc = some.address.two
}
boolean loginSuccess = false;
try
{
LoginContext lc = new LoginContext(...);
//Try Realm 1
lc.login();
loginSuccess = true;
}
catch(LoginException le)
{
try
{
LoginContext lc2 = new LoginContext(...);
//Try Realm 2
lc2.login();
loginSuccess = true;
}
catch(LoginException le)
{
//...
}
}
return loginSuccess;
你真的嘗試你的代碼? –
你的意思是上面的僞代碼?不,但我跑了幾個變化。我可能不完全理解,但它看起來像krb插件使用System.setProperty(..),如果有兩個實例會破壞的東西,或者如果指向krb5.conf文件,它只會嘗試授權到默認領域。 –
由於您的密鑰表綁定到一個領域,因此無法直接向多個領域進行身份驗證。你可以通過請求TGT來從你的領域中獲得不同的領域。所以不需要創建登錄上下文。 –