Java 如何针对Spring表达式语言SpEL中的域对象集合进行身份验证
我的原则是“foo”的一个实例,它有一个“bar”集合。每个“条”都有一个id,我希望该id与作为请求的资源传递的“id”匹配。在春天,我能做如下事情吗?如果是,怎么做 示例(psuedo语法;因为我不知道正确的方法,这就是我在这里的原因) 本质上与此相当Java 如何针对Spring表达式语言SpEL中的域对象集合进行身份验证,java,spring-security,spring-el,Java,Spring Security,Spring El,我的原则是“foo”的一个实例,它有一个“bar”集合。每个“条”都有一个id,我希望该id与作为请求的资源传递的“id”匹配。在春天,我能做如下事情吗?如果是,怎么做 示例(psuedo语法;因为我不知道正确的方法,这就是我在这里的原因) 本质上与此相当 for(Transaction t : principal.transactions){ if(t.getId() == dto.getTransactionId()) return true; } return fa
for(Transaction t : principal.transactions){
if(t.getId() == dto.getTransactionId())
return true;
}
return false;
我不确定用普通的语言是否可以做到。但您可以尝试一种解决方法:
@PreAuthorize("principal.hasTransactionId(#dto.transactionId)")
然后您需要向主体添加hasTransactionId(Integer transactionId)方法。此方法必须返回布尔值。我不确定是否可以在普通SpEL中执行此操作。但您可以尝试一种解决方法:
@PreAuthorize("principal.hasTransactionId(#dto.transactionId)")
然后您需要向主体添加hasTransactionId(Integer transactionId)方法。此方法必须返回布尔值。此解决方案对我有效。看,这个解决方案对我有效。看见