【发布时间】:2012-11-23 16:01:14
【问题描述】:
在 MDB 的 onMessage 方法中,如何检索发起请求的 JAAS 用户主体的名称?我的应用程序正在使用 Servlet 登录和 jdbcRealm。
我曾考虑将其添加为消息属性,但我宁愿确保它由 JAAS 处理。
【问题讨论】:
标签: jakarta-ee jms jaas message-driven-bean
在 MDB 的 onMessage 方法中,如何检索发起请求的 JAAS 用户主体的名称?我的应用程序正在使用 Servlet 登录和 jdbcRealm。
我曾考虑将其添加为消息属性,但我宁愿确保它由 JAAS 处理。
【问题讨论】:
标签: jakarta-ee jms jaas message-driven-bean
它是固有处理的,你所要做的就是注入和使用MessageDrivenContext:
..
@Resource
private MessageDrivenContext mdc;
public void onMessage(Message message) {
Principal principal = mdc.getCallerPrincipal();
System.out.println(principal.getName());
//ALTERNATIVELY, YOU CAN USE A METHOD mdc.isCallerInRole("<role name>");
}
【讨论】: