私の原則は、「バー」のコレクションを持つ「foo」のインスタンスです。各「バー」には、要求されたリソースとして渡された「id」と一致させたい ID があります。Spring SpEL で次のようなことができますか? もしそうなら、どのように?
例(疑似構文。正しい方法がわからないため、ここにいます)
@PreAuthorize("principal.transactions.contains(instance where dto.transactionId == instance.id")")
public SomeResponse processTransaction(RequestDto dto) {
...
}
本質的にこれと同等
for(Transaction t : principal.transactions){
if(t.getId() == dto.getTransactionId())
return true;
}
return false;