JAAS を使用できるはずです。これは、JBoss 7 が使用すべきものです。
呼び出し元のプリンシパルはSessionContext
、リソースであることを JBoss に伝えることで取得できる に保存されます。
@Resource
private SessionContext context;
public void myAwesomeMethod() {
String currentUser = context.getCallerPrincipal().getName();
}
何らかの理由でインジェクションがステートレス Bean で機能しない場合は、EJBContext を直接検索できます。
@Stateless
public class HelloBean implements com.foo.ejb.HelloRemote {
public void hello() {
try {
InitialContext ic = new InitialContext();
SessionContext sctxLookup =
(SessionContext) ic.lookup("java:comp/EJBContext");
System.out.println("look up EJBContext by standard name: " + sctxLookup);
} catch (NamingException ex) {
throw new IllegalStateException(ex);
}
}
}
このスニペットは、EJBContext を取得する 4 つの方法から取得されました。