JBoss AS:没有有效的呼叫者身份安全上下文

时间:2011-08-18 14:18:50

标签: security jboss ejb jaas

我需要使用JBoss AS 6在SLSB中获取调用者的用户名。因此,我将它传递给InitialContext,如下所示:

Context ctx = new InitialContext();
String userName = System.getProperty("user.name");
ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, userName);

在我的SLSB中,我尝试使用以下方式访问它:

@Resource
EJBContext ctx;

// ...

String userName = ctx.getCallerPrincipal().getName();

但是,我从JBoss收到以下错误:

java.lang.IllegalStateException: No valid security context for the caller identity
    at org.jboss.ejb3.EJBContextImpl.getCallerPrincipal(EJBContextImpl.java:143)

有人可以给我一个提示,我必须在JAAS Universe中配置哪个JBoss AS文件才能启动并运行?

1 个答案:

答案 0 :(得分:1)

我的问题的答案在

中提供

由于我目前不需要身份验证/授权,我只是在文件conf / login-conf.xml的末尾添加了以下行:

  <application-policy name="simple">
    <authentication>
      <login-module code="org.jboss.security.auth.spi.SimpleServerLoginModule" flag="required" />
    </authentication>
  </application-policy>

注意安全风险!!! 使用SimpleServerLoginModule我的解决方案没有任何安全性!