Я всегда получаю несанкционированный доступ при входе в систему.
При входе в систему мне нужно аутентифицировать пользователя, а также генерировать токен CSRF на основе токена JWT, сгенерированного из учетных данных пользователя.
У меня есть CsrfCookieGeneratorFilter, но мне нужно передать JWT, сгенерированный после успешной аутентификации. Мой текущий код всегда выполняет CsrfFilterfirst и после этого запускает аутентификацию.
Итак, сначала аутентификация, а затем CsrfCookieGeneraterFilter.
Кто-нибудь может подсказать, как добиться этого с помощью следующего компоновщика (я новичок в этой реализации безопасности в Spring)
Ниже приведен код, который я пытаюсь:
httpSecurity
.authorizeRequests().antMatchers("/login").permitAll()
.anyRequest().authenticated()
.and()
.csrf()
.requireCsrfProtectionMatcher(csrfRequestMatcher)
.csrfTokenRepository(customCsrfTokenRepository)
.and()
.cors()
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.exceptionHandling()
.authenticationEntryPoint(this.jwtAuthenticationEntryPoint);
httpSecurity.addFilterAt(new CsrfCookieGeneratorFilter(customCsrfTokenRepository), CsrfFilter.class);
httpSecurity.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class);