从REST服务注入EJB中的主体
我有一个简单的REST Web服务,它使用基本身份验证从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()
@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提供的版本