Вот моя конфигурация безопасности:
Код: Выделить всё
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
@EnableWebSecurity
@Configuration
public class SecurityConfig {
@Bean
public UserDetailsService inMemoryUserDetailsManager() {
UserDetails user = User.builder()
.username("user")
.password(passwordEncoder().encode("password"))
.roles("USER")
.build();
UserDetails admin = User.builder()
.username("admin")
.password(passwordEncoder().encode("password"))
.roles("USER", "ADMIN")
.build();
return new InMemoryUserDetailsManager(user, admin);
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(auth -> auth.anyRequest().hasAnyRole("USER", "ADMIN"))
.csrf(AbstractHttpConfigurer::disable)
.httpBasic(Customizer.withDefaults());
return http.build();
}
}
Код: Выделить всё
spring.security.user.name=customUser
spring.security.user.password={noop}customPassword
Наконец, я продолжаю получать ошибку, связанную с CSRF, а именно: «Невозможно найти ожидаемый токен CSRF. " Несмотря на то, что я отключил CSRF в конфигурации безопасности, проблема, похоже, сохраняется.
Вопросы:
Почему я получаю сообщение об ошибке 401 Unauthorized, хотя пользователь настроены правильно?
Что я могу сделать, чтобы обеспечить правильную работу конфигурации UserDetailsService в памяти?
Как устранить ошибку CSRF, которая продолжает появляться, несмотря на то, что она отключена в конфигурации?< /p>
Буду очень благодарен за любую помощь!
Я реализовал специальную конфигурацию безопасности с помощью Spring Security для аутентификации пользователей. Я ожидал, что хранящийся в памяти диспетчер сведений о пользователях позволит мне аутентифицировать пользователей, определенных в классе SecurityConfig. Однако я продолжаю получать ошибку 401 Unauthorized при попытке доступа к защищенным ресурсам. Кроме того, даже несмотря на то, что я отключил защиту CSRF, я все равно сталкиваюсь с ошибкой «Невозможно найти ожидаемый токен CSRF».
Подробнее здесь: https://stackoverflow.com/questions/790 ... nfiguratio
Мобильная версия