У нас есть приложение Java EE 7, и мы используем Arquillian для тестирования. Теперь мы хотим проверить некоторые разрешения текущего пользователя, вошедшего в систему. Мой вопрос довольно простой, как мне войти в систему, когда я внутри тестового набора? Я прочитал ProgrammaticLogin не работает в тестах arquillian и Встроенные вопросы Glassfish, безопасности и Arquillian, но на них нет четкого ответа. Мой текущий подход выглядит примерно так:
// Inject services etc.
@Test
public void testLogin(){
UserAccount user = new UserAccount();
user.setUsername("bob");
user.setPassword("bob");
userAccountService.save(user);
ProgrammaticLogin pl = new ProgrammaticLogin();
String realmName = "secureJDBCRealm";
try {
pl.login("bob", "bob".toCharArray(), realmName, true);
} catch (Exception e){
e.printStackTrace();
}
}
Теперь, когда я пытаюсь запустить это, получаю LoginException, утверждая, что у меня нет LoginModule, настроенного для «fileRealm». Но «fileRealm» — это не та область, которую я ищу (в первый раз я поместил ее туда для проверки, но затем изменил ее на «secureJDBCRealm», которая является нашей пользовательской областью безопасности для GlassFish). Мы используем arquillian-glassfish-embedded-3.1
для тестирования.
- Кто-нибудь знает, где определить Realm для Arquillian?
- Почему мое приложение продолжает искать fileRealm? Это значение по умолчанию? (здесь характеристики не нашел)