Federsicherheit: Warum können wir in @PreAuthorize nicht auf Ruhezustand-Entitätsparameter zugreifen?
Ich habe die folgende Schnittstellenmethode, auf die ich mich bewerbe@PreAuthoriz
e:
@PreAuthorize("doSomething(#user.id)")
void something(User user, List<User> accessList);
woherUser
ist einRuhezustand Objekt. Es gibt mir einen Fehler:
org.springframework.expression.spel.SpelEvaluationException: EL1007E: (pos 13): Feld oder Eigenschaft 'id' kann nicht auf null unter org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty (PropertyOrFieldReference.java:204) gefunden werden
Es gibt keine Möglichkeit, dass dieuser
Der Parameter ist null, als ob ich die Annotation entferne und den Wert von user in der Methode überprüfe, die diese Schnittstellenmethode implementiert. Es gibt eine gültigeUser
Objekt dort vorhanden. Kurz vor dem Aufrufen dieser Methode habe ich außerdem sichergestellt, dass das Benutzerobjekt ordnungsgemäß erstellt wurde.
Ich kann wirklich nicht herausfinden, warum das so istuser
Feld wird vom SPEL-Parser als null betrachtet