У нас есть простое приложение с двумя потребителями и 5 конечными точками. Для одной конечной точки мне нужен какой-то способ аутентификации. Мне нравится полосатый способ сделать это, но я не знаю, как я могу сделать это в весенней загрузке.
"Аутентификация в API выполняется через HTTP Basic Auth. Укажите ваш ключ API в качестве базового значения имени пользователя auth. Вам не нужно указывать пароль."
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/qr")
.hasRole("user")
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.httpBasic()
.and()
.csrf()
.disable();
}
@Bean
public UserDetailsService userDetailsService() {
val encodedPassword = new BCryptPasswordEncoder().encode("test");
final InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withUsername("admin").password(encodedPassword).roles("user").build());
//manager.createUser(User.withUsername("admin").roles("user").build());
return manager;
}
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
Я пытался удалить пароль из manager.createUser, но это не сработало.