我在使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