Spring Boot WithMockUser parametrisiert

24.05.2023

Der Artikel zeigt, wie man in Spring Boot Security Tests mit Mock-Usern parametrisiert.

WithMockUser ist eine gute Möglichkeit, um die Absicherung von Endpunkten mit bestimmten Rollen zu testen.

Nehmen wir an, wir haben einen Service mit folgender Absicherung:

  • der Benutzer mit Name „admin“ wird unabhängig seiner Rollen zugelassen
  • andere Benutzer benötigen zwei bestimmte Rollen: „REQUIRED_ROLE_1“ und „REQUIRED_ROLE_2“

Dies könnte zum Beispiel wie folgt implementiert sein:

Um die Absicherung zu testen müssten wir mit @WithMockUser mehrere Tests in der folgenden Art schreiben:

Leider muss man bei Verwendung von WithMockUser für jede Rollenkombination einen eigenen Test schreiben. Schöner wäre ein parametrisierter Test. Tatsächlich gibt es eine einfache Möglichkeit hierfür. Allerdings müssen wir anstelle der Annotation WithMockUser einen RequestPostProcessor verwenden:

Ergebnis bei Ausführung in der IDE:

Ergebnis der Unit-Test-Ausführung in der IDE

Quellen:

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*