我正在进行一个通过JTest扫描的项目,其中一个bug是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扫描缺陷,请提供我的链接
发布于 2018-11-22 13:55:39
此规则规定,不应从未指定的方法调用访问控制方法。您的应用程序应该有授权类/模块。所以你的代码:
private boolean isInRole(String role) {
return getRequest().isUserInRole(role);
}不正确(检查用户角色),因为此方法位于Servlet中。请将此方法移动到授权类,并在测试配置中设置此方法。
https://stackoverflow.com/questions/49896042
复制相似问题