我有一个受@RolesAllowed 保护的@Stateless EJB,我正在尝试使用嵌入式GlassFish 容器进行JUnit-4 测试。我最近克服的障碍是持久性单元和安全领域的 GlassFish 域配置。
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(EJBContainer.MODULES, new File("build/classes"));
properties.put("org.glassfish.ejb.embedded.glassfish.configuration.file",
"test-resource/domain.xml");
ec = javax.ejb.embeddable.EJBContainer.createEJBContainer(properties);
嵌入式 GlassFish 启动,我的应用程序部署,一切似乎都按预期工作,直到我调用带有 @RolesAllowed 注释的 EJB 方法。
javax.ejb.AccessLocalException: Client not authorized for this invocation
由于某种原因,我无法弄清楚如何设置容器的角色以通过安全检查。我错过了什么?