在MDB的onMessage方法中,如何检索发起请求的JAAS用户主体的名称?我的应用程序使用Servlet登录和jdbcRealm。
我考虑将其添加为消息属性,但我宁愿确保这是由JAAS处理的。
答案 0 :(得分:1)
它本身是处理的,你所要做的就是注入并使用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>");
}