Как удалить JSESSIONID из файлов cookie? - PullRequest
1 голос
/ 22 марта 2019

Я использую Spring Boot, Spring MVC и Spring Security. Я добавил авторизацию JWT, поэтому мне нужно, чтобы в моем сеансе не было состояния, поэтому я добавил соответствующий параметр в свою конфигурацию безопасности:

 http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);

Но когда я делаю запрос к своему приложению, я получаю JSESSIONID в виде cookie. Я попытался решить проблему, добавив этот код в мой фильтр jwt:

    Cookie[] cookies = httpServletRequest.getCookies();
    if(cookies!=null)
        for (int i = 0; i < cookies.length; i++) {
            cookies[i].setMaxAge(0);
            httpServletResponse.addCookie(cookies[i]);
        }

Но это не помогло, так как его окончательно удалить ??

Мой полный код безопасности:

@Override
public void configure(HttpSecurity http) throws Exception {

    http.csrf().disable();

    http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);

    http.authorizeRequests()
            .antMatchers("/user/login").permitAll().antMatchers("/user/get/**").hasRole(Role.BOT.toString()).antMatchers("/", "/login**","/callback/", "/webjars/**", "/error**")
            .permitAll().anyRequest().authenticated();


  http.apply(new JwtFilterConfiguer(provider));



}

1 Ответ

0 голосов
/ 22 марта 2019

Значение MaxAge -1 указывает, что файл cookie должен сохраняться в течение всего сеанса.Вместо этого вы хотите установить MaxAge на 0.

Из [документации API] [1]:

Отрицательное значение означает, что cookie не сохраняется постоянно и будет удален, когда веб-браузервыходы.Нулевое значение приводит к удалению куки.

пожалуйста, вы также можете перейти по этой ссылке 'https://www.baeldung.com/java-servlet-cookies-session'

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