Wir haben eine Java EE 7-Anwendung und verwenden Arquillian, um Zeug zu testen. Jetzt wollen wir nach einigen Berechtigungen des aktuell angemeldeten Benutzers suchen. Meine Frage ist ziemlich einfach. Wie kann ich einen Benutzer anmelden, wenn er sich in einem Testfall befindet? Ich habe ProgrammaticLogin doesnt work in arquillian tests und Embedded Glassfish, security and Arquillian questions gelesen, aber sie sind nicht klar beantwortet. Mein aktueller Ansatz ist so etwas wie diese:So testen Sie Login/Authentifizierung mit 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();
}
}
Jetzt, wenn ich versuche, dies zu laufen, eine bekommt ein Loginexception behauptet, dass ich keine Loginmodule konfiguriert für „fileRealm“ habe. Aber "fileRealm" ist nicht der Bereich, nach dem ich suche (ich habe ihn dort zum ersten Mal getestet, aber dann habe ich ihn in "secureJDBCRealm" geändert, das ist unser benutzerdefiniertes Sicherheits-Realm für GlassFish). Wir verwenden arquillian-glassfish-embedded-3.1
zum Testen.
- Weiß jemand, wo das Reich für Arquillian zu definieren?
- Warum sucht meine Anwendung weiter nach fileRealm? Ist dies der Standardwert? (konnte hier keine Spezifikationen finden)
Dank! Am Ende haben wir jedoch einen Remote-GlassFish mit dem richtigen Realm verwendet, der bereits vorkonfiguriert war. Die Remote-Unterstützung ist noch nicht so lange her, also haben wir diese Möglichkeit zunächst nicht gesehen. – bmurauer
CommanderRunner-Schnittstelle geändert und dies funktioniert nicht mehr: -/Glassfish 3.1.2.2 –