我在使IE8與OpenAM協同工作時遇到了麻煩。我正在使用一個定製的登錄模塊,它是一個擴展com.sun.identity.authentication.spi.AMLoginModule的java類。我的登錄模塊完全適用於Firefox,Chrome和最新版本的IE,但IE8使其工作錯誤。OpenAM登錄進程狀態
登錄模塊分兩步工作:首先提示輸入用戶名和密碼,然後提示輸入驗證碼。認證過程的兩個步驟基於過程狀態。因此,我的過程()方法可概括像:
public int process(Callback[] callbacks, int state) throws AuthLoginException {
switch (state) {
case 1:
return processState1(callbacks);
break;
case 2:
return processState2(callbacks);
break;
}
return -1; // -1 indicates success
}
在大多數情況下,處理()被調用,狀態「1」的第一篇文章(用戶名/密碼),並用狀態「2」後第二POST後(驗證碼)。但與IE8,該方法被稱爲兩次狀態「1」(但具有不同的回調)。
所以我的問題是:你知道如何管理process()方法的「狀態」參數嗎?換句話說,在登錄步驟之間增加這個參數是什麼?知道如何在內部管理它可能會幫助我解決與IE8的這個問題。
感謝
非常感謝。所以我猜IE8不會正確發送AMAuthCookie(可能是因爲IE8的安全設置)。我將通過分析HTTP請求來以這種方式進行搜索。 – morbac