Ich verwende @WithMockUser
, um eine Controller-Methode zu testen, die mit Basic Auth in einem einfachen Springboot-Webdienst gesichert ist. Meine Anmerkung wie folgt aussieht:@WithMockUser ignoriert Benutzername, Passwortfelder?
@WithMockUser(username = 'admin', password = 'mypassword', roles = ['ADMIN'])
Es scheint jedoch, dass der Benutzername und das Passwort-Feld ignoriert werden. Der Test wird bestanden, auch wenn ich einen falschen Benutzernamen oder ein falsches Passwort angegeben habe. Das Rollenfeld scheint jedoch verwendet zu werden, und der Test schlägt fehl, wenn eine ungültige Rolle bereitgestellt wird.
Vielleicht missverstehe ich die Rolle dieser Anmerkung, aber sollte ich in der Lage sein, sie zu verwenden, um das Verhalten von falschen Anmeldeinformationen zu überprüfen, die an eine gesicherte Methode geliefert werden?
Danke!
--John
Nein, sollten Sie nicht. Was es tut, repopuliert den 'SecurityContext' mit dem gegebenen Benutzer. Es erlaubt Ihnen nicht, etwas anderes zu testen. Wenn Sie das möchten, müssen Sie einen Systemtest oder einen vollständigen Integrationstest durchführen, indem Sie die Springs Mock MVC-Testunterstützung einschließlich der manuellen Registrierung Ihrer Sicherheitskonfiguration verwenden. –