У меня есть некоторые локальные службы, сопоставленные с той же базой. Эти сервисы для пользователей должны быть закрыты, но один из них используется ZooKeeper и должен быть открытым. Так я настроен:Spring Security 4 настроить матчи
@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("us").roles("USER");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/inner/service/**").hasRole("USER")
.and().antMatcher("/inner/service/event/bus").csrf().disable().anonymous()
.and().formLogin().and().logout().and().httpBasic();
}
}
эта конфигурация не работает. У меня есть открытый сервис не только для событий. Каждая из услуг открыта. Если я меняю конфигурацию на:
@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("us").roles("USER");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/inner/service/**").hasRole("USER")
.and().formLogin().and().logout().and().httpBasic();
}
}
Все услуги закрыты, чем.
Можно ли настроить анонимные запросы везде
"/**"
аутентифицированные услуги по пути
"/inner/service/**"
с открытым одним
"/inner/service/event/bus"
?
P.S. Служба Open используется для ответа ZooKeeper.