Spring добавляет JSESSIONID несмотря на управление сеансами без сохранения состояния ⇐ JAVA
Spring добавляет JSESSIONID несмотря на управление сеансами без сохранения состояния
Я использую рабочую аутентификацию JWT своего веб-приложения со следующей конфигурацией:
@Override protected void configure(HttpSecurity http) выдает исключение { http .csrf().отключить() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .и() .Обработка исключений() .authenticationEntryPoint( (req, rsp, e) -> p.sendError(HttpServletResponse.SC_UNAUTHORIZED)) .и() .addFilter(новый UsernamePasswordAuthenticationFilter(authenticationManager(), jwtConfig)) .addFilterAfter(новый JwtTokenAuthenticationFilter(jwtConfig), ИмяПользователяПарольAuthenticationFilter.class) .authorizeRequests() .antMatchers(HttpMethod.POST, jwtConfig.getUri()).permitAll() .anyRequest().аутентифицированный(); } Что касается SessionCreationPolicy.STATELESS, я ожидаю, что Spring не будет создавать сеанс сам. Однако если я получу доступ к любому другому ресурсу, кроме /login, я все равно увижу следующую запись в заголовке ответа:
set-cookie: JSESSIONID=...; Путь=/; HttpOnly Может кто-нибудь объяснить, откуда это взялось (возможно, не из Spring), и если оно все еще происходит из Spring, что нужно изменить?
Изменить:
При тестировании на моем контроллере сеанс все еще внедряется, о чем свидетельствует наличие вышеуказанного токена. Я до сих пор понятия не имею, откуда это взялось.
@PostMapping @ResponseStatus(HttpStatus.CREATED) public void create (сеанс HttpSession) { если (сеанс != ноль) { System.out.println("Сессия существует"); // выполняется } }
Я использую рабочую аутентификацию JWT своего веб-приложения со следующей конфигурацией:
@Override protected void configure(HttpSecurity http) выдает исключение { http .csrf().отключить() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .и() .Обработка исключений() .authenticationEntryPoint( (req, rsp, e) -> p.sendError(HttpServletResponse.SC_UNAUTHORIZED)) .и() .addFilter(новый UsernamePasswordAuthenticationFilter(authenticationManager(), jwtConfig)) .addFilterAfter(новый JwtTokenAuthenticationFilter(jwtConfig), ИмяПользователяПарольAuthenticationFilter.class) .authorizeRequests() .antMatchers(HttpMethod.POST, jwtConfig.getUri()).permitAll() .anyRequest().аутентифицированный(); } Что касается SessionCreationPolicy.STATELESS, я ожидаю, что Spring не будет создавать сеанс сам. Однако если я получу доступ к любому другому ресурсу, кроме /login, я все равно увижу следующую запись в заголовке ответа:
set-cookie: JSESSIONID=...; Путь=/; HttpOnly Может кто-нибудь объяснить, откуда это взялось (возможно, не из Spring), и если оно все еще происходит из Spring, что нужно изменить?
Изменить:
При тестировании на моем контроллере сеанс все еще внедряется, о чем свидетельствует наличие вышеуказанного токена. Я до сих пор понятия не имею, откуда это взялось.
@PostMapping @ResponseStatus(HttpStatus.CREATED) public void create (сеанс HttpSession) { если (сеанс != ноль) { System.out.println("Сессия существует"); // выполняется } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Spring Security 6 – используйте токены JWT вместо JSESSIONID после входа в систему OAuth2
Anonymous » » в форуме JAVA - 0 Ответы
- 40 Просмотры
-
Последнее сообщение Anonymous
-