应该对JTest错误SECURITY.WSC.CACM-1应用什么修复

时间:2018-04-18 09:27:40

标签: java servlets jtest

我正在开发一个经过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 个答案:

答案 0 :(得分:0)

此规则表明,您不应从未指定的方法中调用访问控制方法。您的应用程序应具有授权类/模块。所以你的代码:

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

不正确(用于检查用户角色),因为此方法位于Servlet中。请将此方法移到您的授权类,并在测试配置中设置此方法。