我有一个方法可以在任一身份验证方法返回 true 时执行。
@PreAuthorize("canExec('ROLE_A') || canExec('ROLE_B')")
public String getSomething() {
return "Something";
}
如何记录身份验证是失败还是成功,这意味着整个 SpEL 查询的结果是真还是假?
以下不是可能的解决方案,因为它可以在同一个SpEL中多次调用,并且多次记录的结果不会反映授权的实际结果。
public boolean canExec(String role) {
boolean result = ...acutal evaluation...;
log.info("auth result for role {}: {}", role, result);
return result;
}