Angenommen, in meinem System möchte ein Benutzer sein Passwort ändern. Er sendet eine PUT
Anfrage, die dann UserRepository.save()
aufruft. Wenn er in die Anfrage eingreift, kann er [user].admin_rights=1
oder ähnliches setzen.Wie verhindere ich Sicherheitsrisiken mit Spring JPA speichern?
Jetzt konnte ich wahrscheinlich @Column(updatable=false)
auf das jeweilige Feld hinzufügen:
@Entity public class User {
@Column(updatable=false) private Boolean admin_rights;
// ....
, aber ein Admin erfordern möglicherweise dieses Feld 1 Tag zu aktualisieren!
Muss ich eine benutzerdefinierte Abfrage schreiben, die angibt, welche Spalten aktualisiert werden sollen? Oder gibt es eine Möglichkeit, dieses Berechtigungsproblem innerhalb der User
Einheit zu lösen?
Sehen Sie sich die Federsicherheit an, besonders vielleicht mit einem '@ PreAuthorize'-Abschnitt. – CollinD