Spring-Sicherheit, JUnit: @WithUserDetails für in @Before erstellte Benutzer

9

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:

%Vor%

Und in @Before :

%Vor%

Wie kann ich ein Konto verwenden, das in UserDetailsServiceImpl mit @Before erstellt wurde?

    
fNek 26.02.2017, 09:47
quelle

2 Antworten

5

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.

    
hya 26.02.2017, 14:53
quelle
3
%Vor%     
Michal Foksa 25.03.2017 06:36
quelle