Spring preAuthorize результат логирования запроса SpEL? - PullRequest
0 голосов
/ 17 июня 2019

У меня есть метод, который может быть выполнен, когда любой из методов аутентификации возвращает 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;
}

1 Ответ

0 голосов
/ 17 июня 2019
public boolean canExecOr(String roleA, String RoleB) {
    boolean canA = canExec(roleA);
    boolean canB = canExec(roleB);
    // log...
   return canA || canB;
}

@PreAuthorize("canExecComposite('ROLE_A','ROLE_B')")

??

...