Spring Security в ответ на регистрациб получаю 403 ошибку
Пробую настроить Spring Security в Spring Boot приложении. На другой стороне работает Angular. При обращении по адресу
POST
localhost:15001/auth/api/v1/user/register
получаю ошибку 403 Перечитал кучу похожих вопросов. Ответ везде один. Ошибка лечится добавлением
http.csrf().disable()
у меня в конфигурации отключен csrf, это прописано в классе SecurityConfig.
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(
securedEnabled = true,
jsr250Enabled = true,
prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private final JwtTokenProvider jwtTokenProvider;
@Autowired
public SecurityConfig(JwtTokenProvider jwtTokenProvider) {
this.jwtTokenProvider = jwtTokenProvider;
}
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.antMatchers(
"/authentication/api/v1/**",
"/auth/api/v1/user/register",
"/swagger-ui/**",
"/swagger-ui.html");
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("http://localhost:4200"));
configuration.setAllowCredentials(true);
configuration.setAllowedHeaders(Arrays.asList("Access-Control-Allow-Headers", "Access-Control-Allow-Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers", "Origin", "Cache-Control", "Content-Type", "Authorization"));
configuration.setAllowedMethods(Arrays.asList("DELETE", "GET", "POST", "PATCH", "PUT"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic().disable()
.cors().and().csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/auth/api/v1/user/register").permitAll()
.anyRequest().authenticated()
.and()
.apply(new JwtConfigurer(jwtTokenProvider));
}
}
В чем еще может быть проблема? Ссылка на репозиторий здесь проект
Ответы (1 шт):
Автор решения: Andy
→ Ссылка
Попробуй закомментировать вот эту строчку:
configuration.setAllowCredentials(true);
и снова послать запрос.
У меня почему-то именно это вызывало ошибку