@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/portal/**").... //the configuration only
//applies when sb hitting /portal/**
}
}
если вам нужна другая конфигурация для другого URL, вам нужно перезаписать другую WebSecurityConfigurerAdapter
:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true)
@Order(101) //@Order(100) is default
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http... //without antMatcher(...) default will be used "/**",
//so it take all request. So the order of this class should be
// higher
}
}
Если вы хотите использовать подход фильтра (.addFilter(new OthersAuthorizationFilter());
), то в вашем методе doFilter
вы должны реализовать:
doFilter(...) {
if(match(request, "/portal/**")
....
}
К сожалению AuthenticationProvider
не даст вам такой возможности, он не знает о URL, только учетные данные. Если вы хотите больше , прочитайте Spring-Security-Architecture .
Но я хочу, чтобы делегировал авторизацию