【问题标题】:Principal in EJB injected from REST service从 REST 服务注入的 EJB 中的主体
【发布时间】:2015-06-27 11:53:33
【问题描述】:

我有一个使用基本身份验证的简单 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 服务进行身份验证的主体相同?

【问题讨论】:

  • 哪个 java ee 版本?
  • JEE7,Wildfly 8提供的那个

标签: rest jakarta-ee wildfly wildfly-8


【解决方案1】:

试试这个:

@Resource
EJBContext context;

...

context.getCallerPrincipal()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 2011-03-02
    • 1970-01-01
    • 2011-01-29
    • 2019-03-14
    相关资源
    最近更新 更多