Я использую Spring security для приложения Spring Boot, содержащего набор служб Restful.Я включил веб-безопасность с базовой аутентификацией.Я хотел бы включить базовую аутентификацию за исключением определенного URL-адреса API, заканчивающегося определенным шаблоном.(Например, API проверки работоспособности, например: / application / _healthcheck)
Код выглядит следующим образом:
@Configuration
@EnableWebSecurity
public class ApplicationWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
@Autowired
private AuthenticationEntryPoint authEntryPoint;
@Value("${application.security.authentication.username}")
private String username;
@Value("${application.security.authentication.password}")
private String password;
@Override
protected void configure(final HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests()
.anyRequest().authenticated()
.and().httpBasic()
.authenticationEntryPoint(authEntryPoint);
}
@Autowired
public void configureGlobal(final AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser(username).password(password).roles("USER");
}
@Override
public void configure(final WebSecurity web) throws Exception {
web.ignoring().antMatchers("*/_healthcheck");
}
}
Однако всякий раз, когда я вызываю URL-адрес ... / application / _healthcheck, браузервсегда запрашивает ввод учетных данных.
Альтернативно, я даже пытался игнорировать этот путь из приложения application.properties Spring boot (удалил метод configure с помощью web.ignoring (). antMatchers ("* / _ healthcheck")), но все жене удается избавиться от аутентификации для этой конечной точки
security.ignored=/_healthcheck,*/_healthcheck