1

A面临下一个问题:我需要从子线程中获取当前登录的用户名,为此我使用MODE_INHERITABLETHREADLOCALSecurityContextHolder的策略。一切正常,直到用户注销并再次登录。之后MODE_INHERITABLETHREADLOCAL不工作。我不知道为什么并尝试找到解决方案。问题是重新登录后SecurityContextHolder.getContext().getAuthentication(),从子线程调用,返回nullSecurityContextHolder.getContextHolderStrategy()返回MODE_INHERITABLETHREADLOCAL)。我在我的 security-config.xml 中设置了上下文持有者策略

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetClass" value="org.springframework.security.core.context.SecurityContextHolder"/> <property name="targetMethod" value="setStrategyName"/> <property name="arguments"><list><value>MODE_INHERITABLETHREADLOCAL</value></list></property> </bean> 如果有人可以帮助我,我将不胜感激。先感谢您!

4

0 回答 0