У меня есть приложение 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
}
}