У нас есть приложение Java EE 7 и используйте Arquillian для тестирования. Теперь мы хотим проверить некоторые разрешения для текущего пользователя. Мой вопрос довольно простой, как я могу войти в систему, когда внутри тестового файла? Я прочитал ProgrammaticLogin doesnt work in arquillian tests и Embedded Glassfish, security and Arquillian questions, но на них не ясно ответил. Мой текущий подход что-то вроде этого:Как протестировать логин/аутентификацию с помощью Arquillian - Java EE 7
// 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
.
- Кто-нибудь знает, где определить Королевство для Аркиллиан?
- Почему мое приложение продолжает искать fileRealm? Это значение по умолчанию? (не нашел здесь никаких спецификаций)
Спасибо! Однако мы закончили тем, что использовали удаленный GlassFish с уже настроенным правилом Realm. Удаленная поддержка возникла не так давно, поэтому мы не увидели эту возможность вначале. – bmurauer
Интерфейс CommanderRunner изменен, и он больше не работает: -/Glassfish 3.1.2.2 –