JAASを使用できるはずです。これはJBoss 7が使用すべきものです。
呼び出し側のプリンシパルは、JBossにリソースであることを伝えて取得できるSessionContext
に格納されます。
@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);
}
}
}
このスニペットは、4 ways to obtain EJBContextから入手しました。
重複しているように見えますが、見つかったばかりです。http://stackoverflow.com/questions/1938517/how-to-get-sessioncontext-in-jbossしかし、この質問を見つけた人は誰も見つけられませんJAASを最初に見たことがない人。 –