-1

私のアプリケーションは、ログインが成功した後、応答に Cookie 'XYZ' を追加します。この Cookie は、ログイン後のアプリの特定の動作を決定します。

私は shiro FormAuthenticationFilter を使用しています。これが Cookie の追加方法です。

@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);
}

この Cookie が正しく設定されていないため、HTMLUnit を使用してこの動作をアサートする機能テストは失敗します。Chrome でアプリを使用すると、問題なく動作します。HTMLUnit テストをデバッグすると、ログインに成功した後、次のメソッドであることが証明されました。

driver.manage.getCookies() 

アプリケーションによって設定された追加の Cookie「XYZ」ではなく、JESSIONID Cookie のみを返します。

注: ログイン後以外のページにこの Cookie を設定すると、htmlunit が取得します。

考えてください?

4

1 に答える 1