In JUnit-Tests mit Spring MockMVC gibt es zwei Methoden zur Authentifizierung als Spring Security-Benutzer: @WithMockUser
erstellt einen Dummy-Benutzer mit den angegebenen Anmeldeinformationen, @WithUserDetails
übernimmt den Namen eines Benutzers und löst ihn in die korrekte benutzerdefinierte% co_de auf % Implementierung mit einer benutzerdefinierten UserDetails
(die UserDetailsService
).
In meinem Fall lädt die UserDetailsServiceImpl
einen Benutzer aus der Datenbank. Der Benutzer, den ich verwenden möchte, wurde in die UserDetailsService
-Methode der Testsuite eingefügt.
Allerdings findet mein @Before
den Benutzer nicht.
In meinem UserDetailsServiceImpl
füge ich den Benutzer wie folgt ein:
Und in @Before
:
Wie kann ich ein Konto verwenden, das in UserDetailsServiceImpl
mit @Before
erstellt wurde?
Leider können Sie @WithUserDetails mit @Before nicht einfach ausführen, da die Spring @ WithUserDetails-Annotation den Sicherheits-Kontext-Test-Listener von Spring aufruft, bevor die setUp-Methode mit @Before ausgeführt wird.
Hier ist Ссылка ein kleiner Trick und eine Antwort auf Ihre Frage.
Tags und Links java spring spring-security junit mockmvc