Итак, я пытаюсь защитить все свои маршруты, кроме /api/auth/login, /api/auth/register.
Ниже приведены коды, которые я использую:
Код: Выделить всё
// AppConfig.java
@Configuration
public class AppConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(12);
}
}
Код: Выделить всё
// SecurityConfig.java
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private PasswordEncoder passwordEncoder;
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(requests -> requests
.requestMatchers("/api/auth/**").permitAll()
.anyRequest().authenticated()
)
.csrf(AbstractHttpConfigurer::disable)
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS));
return http.build();
}
@Bean
public AuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setUserDetailsService(userDetailsService);
provider.setPasswordEncoder(passwordEncoder);
return provider;
}
}
Код: Выделить всё
// UserDetailsService.java
@Service
public class UserDetailsService implements org.springframework.security.core.userdetails.UserDetailsService {
@Autowired
private UserRepo repo;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = repo.findByUsername(username).orElse(null);
if (user == null) {
throw new UsernameNotFoundException("User not found");
}
return new UserPrinciple(user);
}
}
Может кто-нибудь помочь мне с этой проблемой? ChatGpt и Github Copilot вообще не помогли.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -forbidden
Мобильная версия