У меня есть собственный фильтр проверки подлинности, который создает PreAuthenticatedAuthenticationToken
и сохраняет его в контексте безопасности. Все это прекрасно работает. Вот конфиг:
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private SsoAuthenticationProvider authenticationProvider;
@Autowired
private SsoAuthenticationFilter ssoAuthenticationFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterAfter(ssoAuthenticationFilter, SecurityContextPersistenceFilter.class);
}
}
Теперь мой ssoAuthenticationFilter
является частью FilterChainProxy
в правой позиции. Гладкая.
Но поскольку ssoAuthenticationFilter
- Filter
, он получает Boot и включается в качестве фильтра. Поэтому моя цепочка фильтров выглядит так:
- ssoAuthenticationFilter (включен, потому что он
Filter
) - filterChainProxy (spring автоконфигурация)
- ...
- SecurityContextPersistenceFilter
- ssoAuthenticationFilter (включено
http.addFilterAfter(...)
) - ...
- некоторые другие фильтры
Очевидно, я хотел бы избавиться от авторегистрации ssoAuthenticationFilter
здесь (первый из них указан).
Любые советы очень ценятся.