傳播Spring安全上下文我想通過Spring集成異步消息流傳播spring安全上下文,但發現即使我添加了SecurityContextPropagationChannelInterceptor
安全上下文總是以null結尾我的消息處理器。如何在Spring集成異步消息傳遞網關
@Bean
@GlobalChannelInterceptor(patterns = {"*"})
public ChannelInterceptor securityContextPropagationInterceptor()
{
return new SecurityContextPropagationChannelInterceptor();
}
我開始從通過撥打電話到我的網關接口有一個人口稠密的安全上下文服務我的流程:
@MessagingGateway
public interface AssignmentsService
{
@Gateway(requestChannel = "applyAssignmentsFlow.input")
ListenableFuture<AssignmentResult> applyAssignments(AssignmentRequest assignmentRequest);
}
關於進一步調試我發現,GatewayProxyFactoryBean
創建一個新線程時啓動我的流程,但不傳播安全上下文。
我已經搜索,但一直無法找到如何配置此傳播安全上下文。
嗨!這幾乎工作,除了我發現我不得不繼承'DelegatingSecurityContextAsyncTaskExecutor',因爲它沒有實現'AsyncListenableTaskExecutor'接口。我應該向Spring Security團隊提出一個更改請求,將其更改爲實現'AsyncListenableTaskExecutor'? –
是的,請:https://github.com/spring-projects/spring-security/issues。 –