0
동일한 작업을 수행하는 동안 "XStream의 보안 프레임 워크가 초기화되지 않았기 때문에 XStream이 취약 할 수 있습니다." 아래 코드는자바 코드를 통해 JMETER 호출 및 Xstream 보안 예외가 발생하는 JMX 테스트 파일 실행
package com.jmeter.runner;
import java.io.FileInputStream;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
import com.thoughtworks.xstream.XStream;
public class JMeterFromExistingJMX {
public static void main(String[] argv) throws Exception {
Class<?>[] classes = new Class[] { JMeterFromExistingJMX.class };
XStream xStream = new XStream();
XStream.setupDefaultSecurity(xStream);
xStream.allowTypes(classes);
// JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();
// Initialize Properties, logging, locale, etc.
JMeterUtils.loadJMeterProperties("F:/Required_Setup_Softwares/apache-jmeter-3.3/bin/jmeter.properties");
JMeterUtils.setJMeterHome("F:/Required_Setup_Softwares/apache-jmeter-3.3");
JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
JMeterUtils.initLocale();
// Initialize JMeter SaveService
SaveService.loadProperties();
// Load existing .jmx Test Plan
FileInputStream in = new FileInputStream("F:/Required_Setup_Softwares/apache-jmeter-3.3/bin/test.jmx");
HashTree testPlanTree = SaveService.loadTree(in);
in.close();
// Run JMeter Test
jmeter.configure(testPlanTree);
jmeter.run();
}
}
내가
Security framework of XStream not initialized, XStream is probably vulnerable.
Exception in thread "main" java.lang.NullPointerException
at org.apache.jmeter.engine.StandardJMeterEngine.configure(StandardJMeterEngine.java:176)
at com.jmeter.runner.JMeterFromExistingJMX.main(JMeterFromExistingJMX.java:46)
jmeter.configure (testPlanTree) 아래로 XStream을 보안 오류가 발생하고 실행하는 동안; 이 줄은 Xstream을 사용하여 내부적으로 문제를 일으켰습니다. 그래서 극복하기 위해 아래 코드를 시도했지만 작동하지 않습니다.
Class<?>[] classes = new Class[] { JMeterFromExistingJMX.class };
XStream xStream = new XStream();
XStream.setupDefaultSecurity(xStream);
xStream.allowTypes(classes);
도와주세요. 나뿐만 아니라 아래의 코드를 시도했지만 너무 나는 당신의 문제를 재현 할 수없는
XStream xstream = new XStream();
// clear out existing permissions and set own ones
xstream.addPermission(NoTypePermission.NONE);
// allow some basics
xstream.addPermission(NullPermission.NULL);
xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
xstream.allowTypeHierarchy(Collection.class);
// allow any type from the same package
xstream.allowTypesByWildcard(new String[] {
"com.your.package.**"
});
감사합니다. 저에게 도움이되었습니다. –