Wiosenne bezpieczeństwo: Dlaczego nie możemy uzyskać dostępu do parametrów programu Hibernate w @PreAuthorize?

Mam następującą metodę interfejsu, o którą się ubiegam@PreAuthorize:

@PreAuthorize("doSomething(#user.id)")
void something(User user, List<User> accessList);

gdzieUser jestObiekt hibernacyjny obiekt. Daje mi błąd:

org.springframework.expression.spel.SpelEvaluationException: EL1007E: (pos 13): Pole lub właściwość „id” nie mogą być znalezione na null w org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty (PropertyOrFieldReference.java:204)

Nie ma mowy, żebyuser parametr ma wartość NULL, tak jakbym usunął adnotację i sprawdził wartość użytkownika w metodzie implementującej tę metodę interfejsu, jest prawidłowyUser przedmiot tam obecny. Dodatkowo, tuż przed wywołaniem tej metody, upewniłem się, że obiekt użytkownika jest poprawnie skonstruowany.

Naprawdę nie mogę zrozumieć dlaczegouser pole należy uznać za puste przez analizator składni SPEL

questionAnswers(4)

yourAnswerToTheQuestion