Какое исправление следует применять для ошибки JTest SECURITY.WSC.CACM-1

Я работаю над проектом, который проходит сканирование JTest, в котором одной из ошибок является SECURITY.WSC.CACM-1, в которой говорится, что:

"isUserInRole()" нельзя вызывать в "isInRole()", его следует вызывать только внутри объявлений методов централизованного управления доступом

Я написал код как:

private HttpServletRequest getRequest() {
            assert (request != null);
            return request;
        }
       @Override
public void onRequestStart(HttpServletRequest request, HttpServletResponse response) {
            this.request = request;
        }
public boolean isAdmin() {
        return isInRole("ADMIN");
        }
private boolean isInRole(String role) {
             return getRequest().isUserInRole(role);
        }

Где я не прав? Кто-нибудь может дать мне решение для этого?

PS: - Пожалуйста, предоставьте мне ссылку, если у вас есть возможные исправления для дефектов сканирования JTest

1 ответ

Это правило говорит, что вы не должны вызывать методы контроля доступа из не указанных методов. Ваша заявка должна иметь класс / модуль авторизации. Итак, ваш код:

private boolean isInRole(String role) {
    return getRequest().isUserInRole(role);
}

неверно (для проверки роли пользователя), поскольку этот метод находится в сервлете. Переместите этот метод в свой класс авторизации и настройте этот метод в своей тестовой конфигурации.

Другие вопросы по тегам