В Spring Security у вас может быть несколько цепочек фильтров, которые обрабатывают разные запросы.Таким образом, у вас может быть один, который обрабатывает запросы к / users / ** uri, который будет иметь фильтр базовой аутентификации, и тот, который обрабатывает запросы к / admin / ** uri, который будет иметь фильтры Oauth2.Чтобы настроить это, вам нужно 2 экземпляра WebSecurityConfigurerAdapter
Один для Oauth2
@Configuration
@Order(1)
public static class Oauth2ConfigurationAdapter extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.mvcMatcher("/user/**")
......
и другой для Basic:
@Configuration
@Order(2)
public static class BasicConfigurationAdapter extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.mvcMatcher("/admin/**")
......
В этой статье это объясняется более подробнодеталь: https://www.baeldung.com/spring-security-multiple-entry-points
Также этот код делает нечто похожее с Digest auth для / admin и Basic для всех остальных.https://github.com/wlesniak/spring-security-authn-authz-course/tree/master/module_2/mod2_crypto_portfolio_digest