我为我的 Web 应用程序完全配置了 SPRING METHOD 安全性。(启用 PRE/POST 注释)。
但是最近我遇到了一个奇怪的问题。总结如下:
POJOS总结
// User Class public class User { int id; String name; // getters and setters } // Group Class public class Group { int id; String name; // getters and setters } // GroupMembership class public class GroupMembership { private int id; private User user; private Group group; // getters and setters }
方法上的 PreAuthorise 过滤器。
@PreAuthorize("canIEditGroupProfile(#membership.group.id)") public int updateGroupMembership(GroupMembership membership) throws GroupsServiceException;
在传递完全填充的GroupMembership
对象(存在正确的用户和组组合)时,安全过滤器会引发以下异常:
errorMessage: "Failed to evaluate expression
canIEditGroupProfile(#membership.group.id)'"
在深入研究异常时:
发现原因是:
org.springframework.expression.spel.SpelEvaluationException:
EL1007E:(pos 33): Field or property 'group' cannot be found on null
请提供指向相同地址的指针。