从REST服务注入EJB中的主体

从REST服务注入EJB中的主体,rest,jakarta-ee,wildfly,wildfly-8,Rest,Jakarta Ee,Wildfly,Wildfly 8,我有一个简单的REST Web服务,它使用基本身份验证 @Path("/ws") @Stateless public class MyWebservice { @EJB private MyEJB myEjb; @GET @Path("/get") @Produces(MediaType.APPLICATION_JSON) public MyObject getObject() { return myEjb.getObject()

我有一个简单的REST Web服务,它使用基本身份验证

@Path("/ws")
@Stateless
public class MyWebservice {
    @EJB
    private MyEJB myEjb;

    @GET
    @Path("/get")
    @Produces(MediaType.APPLICATION_JSON)
    public MyObject getObject() {
        return myEjb.getObject();
    }
}
EJB也非常简单:

@Stateless
public class MyEJB {
    @Resource(lookup = "java:comp/EJBContext")
    private SessionContext sessionContext;

    @PermitAll
    public MyObject getObject() {
        return new MyObject();
    }
}
然而,当我调试时,
sessionContext
中EJB中的主体始终是“匿名”的,不管我使用哪个用户对WS进行身份验证

如何将EJB主体设置为与针对Web服务进行身份验证的主体相同?

尝试以下方法:

@Resource
EJBContext context;

...

context.getCallerPrincipal()

哪个JavaEE版本?JEE7,由Wildfly 8提供的版本