Jakarta ee 使用OpenEJB@ApplicationComposer为junit测试中的测试方法设置用户凭据
当我使用@ApplicationComposer配置测试时,它不会在我的企业bean中创建具有正确属性的SessionContext。它总是使用PropertiesLogin,无论我在配置中添加了什么 我一直在努力Jakarta ee 使用OpenEJB@ApplicationComposer为junit测试中的测试方法设置用户凭据,jakarta-ee,junit,ejb,openejb,Jakarta Ee,Junit,Ejb,Openejb,当我使用@ApplicationComposer配置测试时,它不会在我的企业bean中创建具有正确属性的SessionContext。它总是使用PropertiesLogin,无论我在配置中添加了什么 我一直在努力 javax.ejb.EJBException: User not found for login guest 例外。下面是我的junit测试类和示例bean @RunWith(ApplicationComposer.class) public class OpenEJBTest {
javax.ejb.EJBException: User not found for login guest
例外。下面是我的junit测试类和示例bean
@RunWith(ApplicationComposer.class)
public class OpenEJBTest {
@EJB
UserUtil uu;
@Configuration
public Properties properties() {
Properties p=new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
p.put(Context.SECURITY_PRINCIPAL, "test");
p.put(Context.SECURITY_CREDENTIALS, "test");
p.put("openejb.authentication.realmName", "mylogmodule");
return p;
}
@Test
public void testSth() {
uu.getUserlogin();
}
}
我尝试过使用自定义LogModule(在login.config中定义的mylogmodule)、默认模块(PropertiesLogin),在测试方法中使用属性启动InitialContext,但没有成功。
谢谢你的建议
@Stateless
public class UserUtilBean implements UserUtil {
@Resource
private SessionContext ctx;
public String getUserLogin() {
return ctx.getCallerPrincipal().getName();
}
}