Я звоню в службу прокси (SOAP), созданную с использованием OSB 11.x и развернутую в Weblogic 10.x.
Я должен ограничить расширение сущности xml, но это не работа.
Когда мы нажимаем на запрос, используя SOAP UI, тогда & xxe; получить фактическое значение, т.е. «NewName», когда запрос достигает уровня прокси OSB.
Первый этап в OSB - регистрация ошибки и регистрация запроса, когда расширяется проверяемая сущность.
Как мы можем ограничить это до получения прокси-сервиса. Мне нужно убедиться, что анализатор XML не должен обрабатывать тип запроса.
<!DOCTYPE foo [<!ENTITY xxe "NewName">]>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:man="http://nil.api.com/xsd/manageemployee_1">
<soapenv:Header/>
<soapenv:Body>
<man:ManageEmployee_1Request>
<man:employeeDeatil>
<man:id>11</man:id>
<man:firstName>&xxe;</man:firstName>
</man:employeeDeatil>
</man:ManageEmployee_1Request>
</soapenv:Body>
</soapenv:Envelope>
Я настроил собственный анализатор, как показано ниже, и установил classpath в startWebLogic.cmd в OSB_Domain \ bin
set CLASSPATH =% CLASSPATH%;% DOMAIN_HOME% \ customXMLRegistry \ xercesImpl-2.6.2-jaxb-1.0.6.jar;% DOMAIN_HOME% \ customXMLRegistry \ CustomXMLParser-0.0.1-SNAPSHOT.jar
ПРИМЕЧАНИЕ. Даже создание реестра XML с пользовательским анализатором документов и SAX не сработало.
1) Конструктор пользовательских документов
import com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl;
открытый класс CustomDocumentBuilderFactoryImpl extends DocumentBuilderFactoryImpl {
public ZaapCustomDocumentBuilderFactoryImpl() {
super();
}
@Override
public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
System.out.println("=====================Start Parser=======");
setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
setXIncludeAware(false);
setExpandEntityReferences(false);
System.out.println("=====================End Parser=======");
return super.newDocumentBuilder();
}
} * * тысяча двадцать-один
2) Custom Sax Parser
import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl;
открытый класс CustomSaxParseFactoryImpl extends SAXParserFactoryImpl {
public ZaapCustomSaxParseFactoryImpl() {
super();
}
@Override
public SAXParser newSAXParser() throws ParserConfigurationException {
System.out.println("------------------------- NNN: SAXParser-----");
try {
System.out.println("----SAXParser-----");
setFeature("http://xml.org/sax/features/external-general-entities",false);
setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
return super.newSAXParser();
} catch (SAXNotRecognizedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
// return super.newSAXParser();
}
}