El contexto de seguridad de Spring siempre está vinculado a Threadlocal.
Probablemente deba configurar adicionalmente MODE_INHERITABLETHREADLOCAL para el contexto de seguridad.
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean() {
MethodInvokingFactoryBean methodInvokingFactoryBean = new MethodInvokingFactoryBean();
methodInvokingFactoryBean.setTargetClass(SecurityContextHolder.class);
methodInvokingFactoryBean.setTargetMethod("setStrategyName");
methodInvokingFactoryBean.setArguments(new String[]{SecurityContextHolder.MODE_INHERITABLETHREADLOCAL});
return methodInvokingFactoryBean;
}
http://www.ogrigas .eu/spring/2010/04/inherit-spring-security-context-in-child-threads
¿Cómo configurar la estrategia Spring Security SecurityContextHolder?