#java #spring #spring-security
#java #spring #spring-безопасность
Вопрос:
Извините, что перепостил это здесь и на старых форумах spring, но я не получил никаких ответов и подумал, что исходное сообщение, возможно, потерялось в случайном порядке, когда форумы были деактивированы. В любом случае…
Из документации можно имитировать несколько элементов в конфигурации Java, расширяя WebSecurityConfigurerAdapter несколько раз. Я сделал это и добавил пару пользовательских фильтров только к одному из них, но странно то, что фильтры, похоже, применяются ко всем запросам, даже к тем, которым они не должны соответствовать. Вот пример моей конфигурации:
@Configuration
class ConfigA extends WebSecurityConfigurerAdapter {
public void configure(HttpSecurity http) {
http
.antMatcher("/foo")
.authorizeRequests()
.anyRequest().fullyAuthenticated()
.and()
.addFilterAfter(myFilter, BasicAuthFilter.class)
...
}
}
@Configuration
class ConfigB extends WebSecurityConfigurerAdapter {
public void configure(HttpSecurity http) {
http
.antMatcher("/bar")
.authorizeRequests()
.anyRequest().fullyAuthenticated()
.and()
...
}
}
Чего мне не хватает? Является ли это по замыслу, что этот фильтр применяется к обоим / всем запросам? Должен ли сам фильтр определять, к каким запросам он должен применяться?
Спасибо, Джастин
Комментарии:
1. Когда вы добавляете фильтр, он соединяется с фильтрами безопасности Spring, поэтому все запросы проходят через него. Вы можете получить путь из HttpServletRequest и сделать что-то только с тем запросом, который вы хотите.