Spring JMS - 从Message Driven Pojo(MDP)获取SecurityContext

时间:2013-11-05 17:46:17

标签: spring-security spring-jms

确定当前登录用户的Spring安全上下文的“标准”方式(AFAIK)是:

User user = (User) SecurityContextHolder.getContext()
                .getAuthentication().getPrincipal();

但是,如果我在JMS消息驱动Pojo(MDP)中运行相同的代码,则上下文为空。

这是有道理的,因为JMS事件不一定发生在会话中,这是安全上下文所在的会话。

但是既然如此,是否有(标准)方式将安全性传播到MDP,或者是将其注入MDP的方式?

谢谢, 罗伊

1 个答案:

答案 0 :(得分:1)

看起来你不能。会话/安全性所需的任何内容都必须放在消息本身上,可能是在标题中。