INT-3984: Fix the BFPPs order
JIRA: https://jira.spring.io/browse/INT-3984 The `PropertySourcesPlaceholderConfigurer implements BeanFactoryPostProcessor, PriorityOrdered` meaning that it is run before any other regular `BeanFactoryPostProcessor`, like the `IntegrationConfigurationBeanFactoryPostProcessor` has been before. With such an order any `BeanDefinition` declaration from the `IntegrationConfigurationBeanFactoryPostProcessor` process ended up without `PP` resolutions. * Rework `IntegrationConfigurationBeanFactoryPostProcessor` to the `BeanDefinitionRegistryPostProcessor`, which makes it be loaded as early as possible. See `PostProcessorRegistrationDelegate`: ````java // Now, invoke the postProcessBeanFactory callback of all processors handled so far. invokeBeanFactoryPostProcessors(registryPostProcessors, beanFactory); invokeBeanFactoryPostProcessors(regularPostProcessors, beanFactory); ```` * Modify `EnableIntegrationTests` and `ChannelSecurityInterceptorSecuredChannelAnnotationTests` to ensure that the change meets the `PP` and `SpEL` resolutions during bean definition phase. * Fix the timing issue in the `JdbcMessageStoreChannelIntegrationTests`
This commit is contained in:
committed by
Gary Russell
parent
1df7815148
commit
b469e62c8a
@@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||
import org.springframework.integration.annotation.BridgeTo;
|
||||
import org.springframework.integration.annotation.Poller;
|
||||
import org.springframework.integration.channel.DirectChannel;
|
||||
@@ -207,6 +208,11 @@ public class ChannelSecurityInterceptorSecuredChannelAnnotationTests {
|
||||
@ImportResource("classpath:org/springframework/integration/security/config/commonSecurityConfiguration.xml")
|
||||
public static class ContextConfiguration {
|
||||
|
||||
@Bean
|
||||
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
|
||||
return new PropertySourcesPlaceholderConfigurer();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@SecuredChannel(interceptor = "channelSecurityInterceptor", sendAccess = {"ROLE_ADMIN", "ROLE_PRESIDENT"})
|
||||
public SubscribableChannel securedChannel() {
|
||||
@@ -225,7 +231,7 @@ public class ChannelSecurityInterceptorSecuredChannelAnnotationTests {
|
||||
}
|
||||
|
||||
@Bean
|
||||
@GlobalChannelInterceptor(patterns = {"queueChannel", "executorChannel"})
|
||||
@GlobalChannelInterceptor(patterns = {"#{'queueChannel'}", "${security.channel:executorChannel}"})
|
||||
public ChannelInterceptor securityContextPropagationInterceptor() {
|
||||
return new SecurityContextPropagationChannelInterceptor();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user