Ich schreibe Integrationstests für meine Dropwizard
Anwendung, um den REST-Dienst zu testen. Meine App verfügt über eine Standardauthentifizierung mit Cookies.Get SecurityContext für Dropwizard-Integrationstests
So habe ich erstellt ClassRule:
@ClassRule public static final DropwizardAppRule<RESTServerConfiguration> RULE = new DropwizardAppRule<>(RESTServer.class, ResourceHelpers.resourceFilePath("serverconfig.yml"));
Wenn ich die login
Methode testen:
final Response response = RULE.client().target("http://localhost:" + RULE.getLocalPort() + "/api/users/login") .request(MediaType.APPLICATION_JSON) .post(Entity.json("{\"username\": \"admin\", \"password\": \"admin\"}"));
alles funktioniert.
Aber wenn ich versuche, auf die geschützte Ressource zu testen, z.B .:
final TestResponse response = RULE.client().target("http://localhost:" + RULE.getLocalPort() + "/api/users/getAllUsers") .request() .get(TestResponse.class);
es nicht mit 401-Fehler.
Wie kann ich SecurityContext erhalten oder die Sitzung irgendwo speichern?
Sie müssen das alles nicht tun. Sie können '.cookie (entry.getValue(). ToCookie())' verwenden. Und warum sogar Schleife? Mach einfach einen map.get und überprüfe auf Null. oder wenn Sie nur alle Cookies senden möchten, etwas wie https://stackoverflow.com/a/46878059/2587435 –
@peeskillet Sie haben Recht, danke für den Kommentar. Die Schleife ist in der Tat nutzlos. – htshame