Cookies HTMLUnit在登录后不会读取除JESSIONID之外的任何cookie
成功登录后,我的应用程序将cookie“XYZ”添加到响应中。此cookie确定应用程序登录后的特定行为 我使用shiro FormAuthenticationFilter,这就是添加cookie的方式Cookies HTMLUnit在登录后不会读取除JESSIONID之外的任何cookie,cookies,htmlunit,missing-cookies,Cookies,Htmlunit,Missing Cookies,成功登录后,我的应用程序将cookie“XYZ”添加到响应中。此cookie确定应用程序登录后的特定行为 我使用shiro FormAuthenticationFilter,这就是添加cookie的方式 @Override public boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws
@Override
public boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest
request, ServletResponse response) throws Exception {
Cookie cookie = new Cookie('XYZ', '123');
cookie.setPath("/");
cookie.setMaxAge(-1);
response.addCookie(cookie);
}
使用HTMLUnit断言此行为的功能测试失败,因为此cookie设置不正确。当我在Chrome中使用这个应用程序时,它工作得非常好。调试HTMLUnit测试证明,在成功登录以下方法后
driver.manage.getCookies()
仅返回JESSIONID cookie,而不返回应用程序设置的附加cookie“XYZ”
注意:如果我在除post登录之外的任何页面上设置此cookie,htmlunit会将其选中
想一想吗?很难猜测为什么除了post登录之外的任何页面上都有东西,但登录本身却没有,这只是另一个页面。特别是如果您没有提供任何代码 显而易见的非代码答案是:登录正在做一些与页面其余部分不同的事情。找到它是什么并修复它
运用我的想象力,仅仅提到这里可能发生的一百件事情中的一件,我敢打赌问题在于,您正在根据未正确执行或接收的AJAX调用设置cookie。我添加了将cookie放在登录后响应上的代码