Когда я настраиваю тест с помощью @ApplicationComposer, он не создает SessionContext внутри моих корпоративных компонентов с соответствующими свойствами. Он всегда использует PropertiesLogin независимо от того, что я ввел в конфигурацию.Установить учетные данные пользователя для методов тестирования в тесте junit с помощью OpenEJB @ApplicationComposer
Я ВСЕГДА получаю
javax.ejb.EJBException: User not found for login guest
Exception. Вот мой тестовый класс 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();
}
}
@Stateless
public class UserUtilBean implements UserUtil {
@Resource
private SessionContext ctx;
public String getUserLogin() {
return ctx.getCallerPrincipal().getName();
}
}
Я попытался с помощью пользовательских LogModule (mylogmodule определено в login.config), модуль по умолчанию (PropertiesLogin), начиная InitialContext со свойствами внутри метода испытаний, но без успеха. Спасибо за любые предложения.