Federsicherheit: Warum können wir in @PreAuthorize nicht auf Ruhezustand-Entitätsparameter zugreifen?

Ich habe die folgende Schnittstellenmethode, auf die ich mich bewerbe@PreAuthorize:

@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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage