Какое исправление следует применять для ошибки 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);
}
неверно (для проверки роли пользователя), поскольку этот метод находится в сервлете. Переместите этот метод в свой класс авторизации и настройте этот метод в своей тестовой конфигурации.