Spring Security требует авторизацию
При попытке добавить пользователя, отпраляя post запрос по пути "/register/user", всё равно требует авторизации. Хотя, учитывая конфиг, не должно. Думал, что дело в csrf, однако отключение не решило проблему. В чём может быть дело?
package org.example.sectest;
import org.example.sectest.model.MyUserDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configurers.AbstractAuthenticationFilterConfigurer;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.DefaultSecurityFilterChain;
@Configuration
@EnableWebSecurity
public class SecConfig {
@Autowired
MyUserDetailService myUserDetailService;
@Bean
public DefaultSecurityFilterChain securityWebFilterChain(HttpSecurity httpSecurity) throws Exception {
return httpSecurity
.csrf(httpSecurityCsrfConfigurer -> httpSecurityCsrfConfigurer.disable())
.authorizeHttpRequests(registry->{
registry.requestMatchers("/home","/register/user").permitAll();
registry.requestMatchers("/admin/**").hasRole("ADMIN");
registry.requestMatchers("/user/**").hasRole("USER");
registry.anyRequest().authenticated();
})
.formLogin(AbstractAuthenticationFilterConfigurer::permitAll)
.build();
}
@Bean
public UserDetailsService userDetailsService(){
return myUserDetailService;
}
@Bean
public AuthenticationProvider authConfigProvider(){
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setUserDetailsService(myUserDetailService);
provider.setPasswordEncoder(passwordEncoder());
return provider;
}
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}