我使用反射来调用一个类的私有构造函数,以解决声纳扫描报告显示的分支复盖不足的问题。这是我正在工作的代码片段:
// reflection to access a private constructor of a class
Constructor c = CMISBridgeMaps.class.getDeclaredConstructor(new Class[0]);
c.setAccessible(true);
cmisBridgeMaps = c.newInstance(new Object[0]);上面的代码解决了我的声纳扫描关键问题。但不幸的是,fortify现在显示了
访问说明符操作
在以下行发出命令:
c.setAccessible(true);我怎样才能同时解决防御工事和声立方问题呢?任何帮助都将不胜感激。
发布于 2018-11-28 17:35:20
我相信你不需要在你的单位TCs上运行加强扫描。因为它们是为了验证您的代码而编写的,并且它们不会运行到您的生产/实际环境中。
发布于 2021-03-01 15:44:01
您可以使用Java的反射api来解决这个问题。下面是我用来解决相同问题的解决方案。
Field field = objectToBeUpdated.getClass().getDeclaredField("paramName");
AccessibleObject.setAccessible(new AccessibleObject[] {field}, true);下面是上面使用的类的导入。
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;发布于 2017-12-13 13:24:39
如果你使用Spring,你可以使用
以使该字段可访问。Fortify不会抱怨这种调整。
有关这方面的更多信息,请参阅
本文
..。
https://stackoverflow.com/questions/41878901
复制相似问题