У меня есть Spring REST API, защищенный с помощью Spring Security и OAuth2, я могу успешно получить токен и получить доступ к своим API. Мое приложение определяет самого клиента OAuth2.
Теперь я хочу, чтобы пользователи имели анонимный доступ к некоторым ресурсам. Вариант использования действительно прост: Я хочу, чтобы мое приложение можно было использовать без входа в систему, но если они вошли в систему, я хочу получить доступ к этому принципалу .
Вот мой WebSecurityConfigurerAdapter
пока:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/api1").anonymous().and()
.authorizeRequests().antMatchers("/ap2**").permitAll();
}
Как только я добавляю второй antMatcher / anonymous, он не работает, хотя и не выражает мои намерения - например, Я не хочу иметь анонимный доступ к api1
GET, но аутентифицируюсь на POST (это легко сделать с помощью @PreAuthorize
).
Как я могу сделать аутентификацию OAuth2 необязательной?