Это мой класс конфигурации
@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated()
.and().oauth2Login().userInfoEndpoint().userAuthoritiesMapper(this.userAuthoritiesMapper());
}
private GrantedAuthoritiesMapper userAuthoritiesMapper() {
return (authorities) -> {
Set<GrantedAuthority> mappedAuthorities = new HashSet<>();
authorities.forEach(authority -> {
mappedAuthorities.add(new SimpleGrantedAuthority("ROLE_A"));
});
return mappedAuthorities;
};
}
}
В моем классе контроллера у меня есть метод, в котором я добавил условие, разрешающее только в том случае, если полномочия равны ROLE_A
@GetMapping("/add")
@PreAuthorize("hasAuthority('ROLE_A')")
public String add(Model model) {
model.addAttribute("customer", new Customers());
return "customers/form";
}
Но при попытке доступ к методу. Я получаю 403 запрещенную ошибку. И в конечном итоге я хочу получить полномочия от MYSQL БД на основе зарегистрированной электронной почты и поместить полномочия в сопоставленные полномочия. Я не хочу использовать права доступа по умолчанию, присутствующие в токене доступа. Так что, если бы вы могли помочь мне и в этом.