Printemps de Sécurité et @Async (Utilisateurs Authentifiés mélangé)

Je asynchrone appeler la méthode avec le Printemps, à l'aide de @Asynchrone.Cette méthode appelle d'autres méthode annotée avec @exiger une autorisation préalable, le Printemps de Sécurité de l'Annotation. Pour faire d'autorisation de travaux, je dois mettre en SecurityContextHolder mode de MODE_INHERITABLETHREADLOCAL, afin que l'authentification de l'info est passée à l'appel asynchrone. Tout fonctionne bien jusqu'à présent.

Cependant, quand je vous déconnecter et vous connecter en tant qu'utilisateur différent, dans la méthode asynchrone SecurityContextHolder magasins d'authentification info de l'ancien utilisateur, qui a été déconnecté. Il provoque des cours indésirables AccessDenied exception. Il n'y a pas ce problème avec des appels synchrones.

J'ai défini <task:executor id="executors" pool-size="10"/>, de sorte qu'il peut être un problème qu'une fois le fil dans la exécuteurs de la piscine a été initialisé, il ne sera pas remplacer l'authentification de l'information?

InformationsquelleAutor Lukasz Moren | 2011-03-09