Как получить доступ к открытому ресурсу с помощью основного заголовка аутентификации, используя Spring Security - PullRequest
0 голосов
/ 12 июня 2019

У меня есть приложение API, которое защищено базовой аутентификацией.Этот API-интерфейс также предоставляет конечную точку oauth, которая является свободно доступной.В некоторых случаях использования к этой конечной точке oauth также следует обращаться с помощью заголовка Authorization с обычной аутентификацией.Базовая аутентификация для конечной точки oauth обрабатывается внутри контроллера.Для остальной части API используется обычная базовая аутентификация Spring Security.

Когда я получаю доступ к / oauth без аутентификации.Все отлично.Но если я отправляю базовый заголовок аутентификации с моим запросом в / oauth, то активируется обычная базовая аутентификация безопасности Spring. Как я могу избежать этого только для / oauth, но остальная часть API должна обрабатываться нормально.

Мы перенесли наше приложение из старой версии 3.x в весеннюю загрузку 2.0.8.В конфигурации xml старой версии это работало, и базовая аутентификация не включается при вызове / oauth


@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // @formatter:off
        http
            .sessionManagement()
                .sessionCreationPolicy(STATELESS)
            .and()
            .authorizeRequests()
                .antMatchers("/oauth/**")
                    .permitAll()
                .antMatchers("/**")
                    .authenticated()
            .and()
                .httpBasic()
                    .authenticationEntryPoint(new RestAuthenticationEntryPoint())
            .and()
            .csrf()
                .disable();
        // @formatter:on
    }


}

...