0
在MDB的onMessage方法中,如何檢索發起請求的JAAS用戶主體的名稱?我的應用程序使用Servlet登錄和jdbcRealm。如何訪問消息驅動Bean中的委託人?
我曾考慮將此添加爲消息屬性,但我寧願確保這由JAAS處理。
在MDB的onMessage方法中,如何檢索發起請求的JAAS用戶主體的名稱?我的應用程序使用Servlet登錄和jdbcRealm。如何訪問消息驅動Bean中的委託人?
我曾考慮將此添加爲消息屬性,但我寧願確保這由JAAS處理。
它本質上處理的,所有你需要做的就是注入並使用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>");
}
非常感謝!我希望MDB有更好的文檔。 – Graham
不客氣!關於文檔,您可以在官方的Oracle文檔中找到有關MDB和示例的介紹,但我同意,它可以是更詳細的。 –