Java isRequestedSessionIdValid成功登录后返回false

Java isRequestedSessionIdValid成功登录后返回false,java,authentication,session,servlets,ldap,Java,Authentication,Session,Servlets,Ldap,我正在Java web app上实现LDAP身份验证,并获得以下信息: try { System.out.println(servletRequest.isRequestedSessionIdValid()); //prints true servletRequest.login(lUser, lPassword);//successfully logs in System.out.println(servletRequest.isRequestedSessionId

我正在Java web app上实现LDAP身份验证,并获得以下信息:

try {
    System.out.println(servletRequest.isRequestedSessionIdValid()); //prints true

    servletRequest.login(lUser, lPassword);//successfully logs in

    System.out.println(servletRequest.isRequestedSessionIdValid()); //prints false

} catch (ServletException se) {
    logger.error("Error authenticating user", se);
    return STATE_INPUT;
}
含义:成功执行的登录方法使会话无效。。。有人知道为什么会发生这种情况以及如何解决吗?
如果servletRequest.isRequestedSessionIdValid()==true,则稍后应用程序将验证,如上面的代码所示,登录方法将使其为false。

看起来所使用的LDAP实现正在使用会话固定预防。为什么这是一个问题,为什么必须解决它?这是一个问题,因为我正在利用一个内部框架,该框架稍后将验证servletRequest.isRequestedSessionIdValid()的计算结果是否为true,并且它将抛出一个异常,因为它的计算结果为false。我会调查那些关于预防的事情。。。看看我能不能想出什么办法。谢谢,如果我使会话无效,并请求一个新的带有ServLeDebug .GETSession(TRUE)的程序,它就会显示为无效。然后只需修复“内部框架”,它就不会认为登录过程中会话ID的改变是非法的。它被添加为依赖项,我不能更改它。但我不确定我是不是跟着你去的。。。该框架所做的只是确保方法javax.servlet.http.HttpServletRequestWrapper.isRequestedSessionIdValid()返回true,它在登录之前返回true,而在登录之后返回true,即使我更改会话id或请求新会话。