Browse Source

REPORT-153340 修复SCA扫描 Access Specifier Manipulation

使用org.springframework.util.ReflectionUtils#makeAccessible 替代
java.lang.reflect.Field.setAccessible 方法
release/11.0^2
shengzu.xue 2 weeks ago
parent
commit
fdcaedfc0d
  1. 5
      designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java
  2. 3
      designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java
  3. 5
      designer-base/src/main/java/com/fr/design/mainframe/DesignerContext.java

5
designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java

@ -9,6 +9,7 @@ import com.fr.design.selection.QuickEditor;
import com.fr.design.ui.util.UIUtil;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.third.springframework.util.ReflectionUtils;
import javax.swing.Action;
import javax.swing.KeyStroke;
@ -241,7 +242,7 @@ public class ActionFactory {
public static UpdateAction createAction(Class clazz) {
try {
Constructor<? extends UpdateAction> c = clazz.getDeclaredConstructor();
c.setAccessible(true);
ReflectionUtils.makeAccessible(c);
return c.newInstance();
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
@ -398,7 +399,7 @@ public class ActionFactory {
}
try {
Constructor<? extends QuickEditor> constructor = cClazz.getDeclaredConstructor();
constructor.setAccessible(true);
ReflectionUtils.makeAccessible(constructor);
return constructor.newInstance();
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);

3
designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java

@ -26,6 +26,7 @@ import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils;
import com.fr.third.springframework.util.ReflectionUtils;
import com.fr.workspace.WorkContext;
import com.fr.workspace.server.authority.user.UserAuthority;
@ -117,7 +118,7 @@ public abstract class TableDataFactory {
try {
if (ComparatorUtils.equals(creatorClass, MultiTDTableDataPane.class) || ComparatorUtils.equals(creatorClass, TreeTableDataPane.class)) {
Constructor constructor = creatorClass.getDeclaredConstructor(new Class[]{String.class});
constructor.setAccessible(true);
ReflectionUtils.makeAccessible(constructor);
datapane = (AbstractTableDataPane) constructor.newInstance(name);
} else {
datapane = creatorClass.newInstance();

5
designer-base/src/main/java/com/fr/design/mainframe/DesignerContext.java

@ -10,6 +10,8 @@ import com.fr.design.dialog.BasicDialog;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StableUtils;
import com.fr.third.springframework.util.ReflectionUtils;
import com.fr.third.v2.org.apache.poi.ss.formula.eval.RefListEval;
import javax.swing.*;
import java.awt.datatransfer.Clipboard;
@ -87,8 +89,7 @@ public class DesignerContext {
try {
Action transferAction = TransferHandler.getCutAction();
Method clipMethod = StableUtils.getDeclaredMethod(transferAction.getClass(), "getClipboard", new Class[]{JComponent.class});
clipMethod.setAccessible(true);
ReflectionUtils.makeAccessible(clipMethod);
return (Clipboard) clipMethod.invoke(transferAction, new Object[]{comp});
} catch (Exception securityException) {
FineLoggerFactory.getLogger().error(securityException.getMessage(), securityException);

Loading…
Cancel
Save