У меня есть следующий метод интерфейса, на котором я подаю @PreAuthoriz
е:Весенняя безопасность: Почему мы не можем получить доступ к параметрам Enable Hibernate в @PreAuthorize?
@PreAuthorize("doSomething(#user.id)")
void something(User user, List<User> accessList);
где User
является Hibernate объекта объекта. Это дает мне ошибку:
org.springframework.expression.spel.SpelEvaluationException: EL1007E: (поз 13): Поле или свойство 'идентификатор' не может быть найден на нуль при org.springframework.expression.spel .ast.PropertyOrFieldReference.readProperty (PropertyOrFieldReference.java:204)
Там нет никакого способа, что параметр user
имеет нулевое значение, как если бы я удалить аннотацию, и проверить значение пользователя в способе, который реализует этот интерфейс метод, существует действующий объект User
. Кроме того, перед вызовом этого метода я убедился, что пользовательский объект правильно построен.
Я действительно не могу понять, почему бы user
поле считается утратившим анализатором SPEL
Спасибо за что .. Как оказалось, имя переменной в аргументе метода в объявлении интерфейса отличается от имени в моей фактической реализации метода ...Весна искала последнее имя – Daud