如何为SecurityFilterAutoConfiguration配置DispatcherType?

时间:2019-05-18 09:32:04

标签: spring-boot spring-security

我有一个使用SecurityFilterAutoConfiguration功能的Spring Boot(2.1.5)应用程序。在DelegatingFilterProxyRegistrationBean注册期间,仅设置了REQUESTASYNCERROR DispatcherTypes。但是我也需要FORWARDINCLUDE

Spring Boot 1.x中的属性 security.filter-dispatcher-types 不再起作用。

我可以通过以下方法“覆盖” DelegatingFilterProxyRegistrationBean来解决此问题:

@Bean
@ConditionalOnBean(name = DEFAULT_FILTER_NAME)
@Primary
public DelegatingFilterProxyRegistrationBean customSecurityFilterChainRegistration(SecurityProperties securityProperties) {
    DelegatingFilterProxyRegistrationBean registration = new DelegatingFilterProxyRegistrationBean(DEFAULT_FILTER_NAME);
    registration.setOrder(securityProperties.getFilter().getOrder());
    registration.setDispatcherTypes(allOf(DispatcherType.class));
    return registration;
}

但这对我来说似乎不是一个非常优雅的解决方案。

是否可以为Spring Boot 2.1.x显式配置此配置?

1 个答案:

答案 0 :(得分:2)

您必须使用spring.security.filter.dispatcher-types,请参见Spring Boot 2.0 Configuration Changelog