Удачи!
есть конфигурация, которая выглядит следующим образом:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
public static final String LOGIN_PATH_EXPRESSION = "/login";
public static final String API_PATH_EXPRESSION = "/api/**/*";
public static final String GLOBAL_PATH_EXPRESSION = "/**/*";
@Autowired
@Qualifier("ssoFilter")
private Filter ssoFilter;
@Autowired
private VerifyingProcessingFilter verifyingProcessingFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.userDetailsService(username -> new User(username, "", Collections.emptyList()))
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers(LOGIN_PATH_EXPRESSION)
.authenticated()
.and()
.httpBasic()
.and()
.authenticationProvider(new SimpleAuthenticationProvider())
.authorizeRequests()
.antMatchers(API_PATH_EXPRESSION).authenticated()
.and()
.addFilterBefore(ssoFilter, BasicAuthenticationFilter.class)
.addFilterAfter(verifyingProcessingFilter, FilteredOAuth2AuthenticationProcessingFilter.class)
.authorizeRequests()
.antMatchers(GLOBAL_PATH_EXPRESSION)
.permitAll()
.and()
.csrf()
.disable();
}
И признал, что мы заканчиваем внутриFilteredOAuth2AuthenticationProcessingFilter
в пределах/login
позвонили и спросили себя, почему это происходит.
Цель состоит в том, чтобы иметьssoFilter
иverifyingProcessingFilter
применяется только при попадании в конечную точку с путемapi/**/*
.
Прямо сейчас мы должны добавить проверку AntMatching внутри фильтра, чтобы она применялась только к правильному запросу, но я предполагаю, что ее можно будет добавить только к соответствующим запросам.
Может ли кто-нибудь предоставить пример того, как добавить фильтр в один конкретный запрос пути соответствия Ant?