Nous avons une application Java EE 7 et utilisons Arquillian pour tester des choses. Maintenant, nous voulons vérifier certaines autorisations de l'utilisateur actuellement connecté. Ma question est assez simple, comment est-ce que je me connecte à un utilisateur à l'intérieur d'un testcase? J'ai lu ProgrammaticLogin doesnt work in arquillian tests et Embedded Glassfish, security and Arquillian questions mais ils ne sont pas clairement répondu. Mon approche actuelle est quelque chose comme ceci:Comment tester login/authentification avec 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();
}
}
Maintenant, quand je tente de lancer cela, un obtenir un LoginException prétendant que je ne LoginModule configuré pour « fileRealm ». Mais "fileRealm" n'est pas le domaine que je recherche (je l'ai mis là pour tester la première fois, mais ensuite je l'ai changé pour "secureJDBCRealm", qui est notre domaine de sécurité personnalisé pour GlassFish). Nous utilisons arquillian-glassfish-embedded-3.1
pour tester.
- Est-ce que quelqu'un sait où définir le Royaume d'Arquillian?
- Pourquoi mon application continue-t-elle de rechercher fileRealm? Est-ce la valeur par défaut? (n'a trouvé aucune spécification ici)
Merci! Cependant, nous avons fini par utiliser un GlassFish distant avec le domaine correct déjà préconfiguré. Le support à distance est apparu il n'y a pas si longtemps, donc nous n'avons pas vu cette possibilité au début. – bmurauer
L'interface CommanderRunner a changé et cela ne fonctionne plus: -/Glassfish 3.1.2.2 –