-
Notifications
You must be signed in to change notification settings - Fork 2
Tag 26 Spring Security 3, Validation, Java Optionals
Durch das Hinzufügen der Annotation @WithMockUser ist das Testen mit einem eingeloggten User wieder möglich.

Wird ein anonymer User getestet, sieht der Test entsprechend so aus:

Außerdem ist es wichtig den csrf Token mitzuschicken, sofern die Methode eine Veränderung hervorruft:

Dies ist die Dependency, um @WithMockUser erfolgreich hinzuzufügen:
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency>
Hierbei fehlt nun nur noch der Button im Frontend:

Damit keine leeren Felder, Tippfehler, falsche Eingaben oder sogar vorsätzlicher Blödsinn in Datenbanken gespeichert werden, können Benutzereingaben vom front- und/oder backend aus validiert werden. Auch können Benutzer zur Eingabe von erforderlichen Informationen gezwungen werden.
Es wird empfohlen Benutzereingaben so wohl auf dem frontend zu validieren, als auch auf dem backend. Wenn Eingaben nur auf dem frontend validiert werden, könnte man trotzdem unrichtige Daten beispielsweise über Postman ans backend schicken.
Heute wurden zwei Möglichkeiten zur frontend-Validierung vorgestellt:
- if Anweisung überprüft vor dem speichern und gibt eine Fehlermeldung, falls Eingabefeld leer ist oder nur ein Leerzeichen enthält.
- required-Zusatz im Eingabefeld
Selbstverständlich gibt es noch unzählige weitere Arten von frontend-Validierung. Hier einige von vielen Links: https://mui.com/material-ui/react-text-field/ https://mui.com/joy-ui/react-input/#validation https://react-hook-form.com
Spring bietet eine Bibliothek für backend-Validierung. Dafür muss folgende Dependency in die pom.xml Datei eingefügt werden
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Spring bietet Annotationen für Eigenschaften im Datenmodell
Neben vordefinierten Prüfungen wie @NotBlank und @Size gibt es noch viele weitere:
Zusätzlich müssen REST-Endpunkte in der Controller Klasse mit der Annotation @Valid beschriftet werden, damit überprüft wird. Falls die Benutzereingabe nicht den Anforderungen entspricht, wird ein Fehlercode 400 „Bad Request“ gesendet, ansonsten Status 200 „OK“.
Es können noch weitere eigene Prüfungen definiert werden. Links zum Weiterlesen: https://www.baeldung.com/spring-boot-bean-validation
https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/validation.html
https://beanvalidation.org/1.0/spec/
-in Bearbeitung-