HttpOnly cook ie не работает при java + весенней загрузке - PullRequest
1 голос
/ 12 февраля 2020

Я использую Spring boot и Spring Security и пытаюсь сгенерировать httpOnly cook ie после аутентификации пользователя. После успешной аутентификации пользователя я хочу сгенерировать токен в AuthenticationSuccessHandler и вернуть его как httpOnly cook ie. Я попробовал другой подход, но я не смог получить повара ie как httpOnly. Это фрагмент кода, который должен был установить повар ie:

import javax.servlet.http.Cookie;
public class AuthSecurityhandler implements AuthenticationSuccessHandler {

public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException {
    String jwt = tokenManagerService.generateAccessToken(authentication.getPrincipal());
    Cookie cookie = new Cookie("token", jwt);
    cookie.setHttpOnly(true);
    response.addCokie(cookie);
}
}

В приведенном выше примере установлен повар ie, но это не httpOnly.

Я также попробовал:

Cookie cookie=new Cookie("token", jwt);
cookie.setPath(";Path=/; HttpOnly");
response.addCookie(cookie);

Это дает мне исключение "Недопустимый путь [; Path = /; httpOnly]" был указан для этого повара ie.

Значение повара ie является JWT токен base64 URL закодирован. Я использую весеннюю загрузку 2.2.2 и вот я на шлюзе Zuul. Я использую встроенный экземпляр Tomcat. Я вижу, что сессионный повар ie, созданный автоматически весной после аутентификации, имеет этот флаг. Поэтому я не могу понять, почему флаг не работает, устанавливая его вручную. Кто-нибудь знает, как включить этот флаг?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...