Как отключить JSESSIONID в Tomcat / Spring Boot, когда я отправляю только перенаправление? - PullRequest
0 голосов
/ 17 мая 2018

Как мне запретить Tomcat отправлять JSESSIONID cookie, когда я отправляю только перенаправление?У меня вообще нет доступа к .getSession().

@RequestMapping(value = "/*")
public void doUrlRequest(final HttpServletRequest request, HttpServletResponse response) {
  ...
  if (redirect != null) response.sendRedirect(redirect);

Консоль

$ curl -i localhost:8080/aaa                                                                                                                                                                               HTTP/1.1 302
Set-Cookie: JSESSIONID=A38FE0B0703F4241414BD8DEF646A2BA; Path=/; HttpOnly
Location: http://localhost:8080/errorNonMobile
Content-Length: 0
Date: Thu, 17 May 2018 19:55:49 GMT

Я пытался

request.getServletContext().setSessionTrackingModes(Collections.singleton(SessionTrackingMode.URL));

Но это ошибка

java.lang.IllegalStateException: режимы отслеживания сеанса для контекста [] не могут быть установлены во время выполнения контекста

Мне нужен сеанс для другого пути.Я не могу отключить его для всего приложения.Я хочу отключить его только для этого обработчика запросов.

1 Ответ

0 голосов
/ 18 мая 2018

Я отключил его, прокомментировав тег @Scope на контроллере.

@Controller
//@Scope("session")
@ApiIgnore
public class MyUrlController implements ErrorController {

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Scope.html

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/WebApplicationContext.html#SCOPE_SESSION

$ curl -i localhost:8080/aaa
HTTP/1.1 302
Location: http://localhost:8080/errorNonMobile
Content-Length: 0
Date: Thu, 17 May 2018 21:26:25 GMT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...