【发布时间】:2019-07-10 16:41:19
【问题描述】:
我有如下声明:
@PreAuthorize("@securityService.isAllowedAccessByCurrentUser(@followingServiceImpl.findOne(#id).user.id)")
public void delete(@PathVariable("id") final Long id) {
方法规范接受一个后续对象的 ID,如果存在具有该 ID 的后续对象,该 ID 将被删除。
只要 findOne(#id) 不返回 null(如果存在具有该 id 的对象,则返回非 null),PreAuthorize 语句将起作用。
如果传入的 id 不属于后面的对象,就会出现问题,这意味着 .user 会导致空指针异常。如果存在(以下对象存在)传递userId的最佳方式是什么,如果它不存在,我们可以将null传递给isAllowedAccessByCurrentUser。
目前,如果具有所述ID的以下对象不存在,我们会得到空指针异常
【问题讨论】:
标签: spring spring-security spring-el