Прежде всего, извинитесь за грамматические ошибки, которые вы можете совершить. Мой английский не очень хорош.
Я новичок в Spring и пытаюсь создать базовую аутентификацию безопасности.
Я пытаюсь настроить, чтобы одна конечная точка имела общедоступный доступ, а другие администраторы - пользовательский доступ.
Это моя идея:
localhost: 8080 / api / teacher / findAll -> Публичный доступ
localhost: 8080 / api / teacher / admin / findAll -> Только доступ ADMIN
localhost: 8080 / API / учителя / пользователь / findAll -> Доступ только для пользователей
Вот мой код:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("user").roles("USER")
.and().withUser("admin").password("admin").roles("ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests()
.antMatchers("/teacher/findAll").permitAll()
.antMatchers("/teacher/admin/findAll").hasRole("ADMIN")
.antMatchers("/teacher/user/findAll").hasRole("USER")
.antMatchers("*/create/**").hasRole("ADMIN")
.and().httpBasic();
}
@SuppressWarnings("deprecation")
@Bean
public static NoOpPasswordEncoder passwordEncoder() {
return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
}
}