2016-08-19 9 views
8

私はXXE(外部XMLエンティティ)注入を防ぐXML検証を実装しています。 OWASP XXE Prevention Cheat Sheetからコードを借りました。私のコードは次のようになります。jboss-deployment-structure.xml JAXP除外を追加

 SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
     Schema schema = factory.newSchema(xsdFileURL); 
     Validator validator = schema.newValidator(); 
     validator.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, ""); 
     validator.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); 
     validator.validate(new StreamSource(new StringReader(xml))); 

コードは私のローカルWindowsマシン(JDK 1.8.0_92、Wildfly 8.2)で正しく動作します。しかし、同様の設定(JDK - 1.8.0_101、Wildfly 8.2)とQA Red Hatのマシン上で、それはメッセージで例外をスローします - いくつかは、私の疑惑を読んだ後

Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized. 

ことは、実行時にあり、間違ったクラスvalidatorクラスの定義が読み込まれています。これをどうやって解決するのですか?

更新

は、JBossがJAXPの独自の実装が付属して判明し、私のコードは、JDKからといないのJBossからJAXPの実装を選択する必要があります。

java -jar jboss-modules.jar -jaxpmodule "javax.xml.jaxp-provider" 

しかし、私はこの使用してのjboss-展開するstructure.xmlを行いたいのですが - 私はstandalone.sh-jaxpmodule引数を渡すことで、これを簡単に行うことができます(これを使用して、私のコードは、同様に正しいJAXPの実装を選びました)と、このような除外を追加 -

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <deployment> 
    <exclusions> 
     <module name="javax.api" /> // is the module name correct? 
    </exclusions> 
    </deployment> 
</jboss-deployment-structure> 

しかし、これは動作していない、私はこれをどのように修正することができますか?

+0

javax.xml.bind.apiまたはcom.sun.xml.bindモジュールを除外してはいけませんか? –

+0

私はXMLを解析するので、私は 'JAXP'を使用しています。 AFAIK JAXBは、XML文書をJavaオブジェクトモデルにバインドするために使用されます。 –

+0

また、 '-jaxpmodule'引数を使用すると、jboss-modules.jarで 'JAXP'モジュールの実装を指定できます。その他の 'JBoss'モジュールにはこのような議論はありません。これは、JAXPの実装をコマンドライン経由で指定することを意図しているのでしょうか? –

答えて

-1

サーバーのランタイムからJARを削除するのではなく、これらのJARを実行時にプロジェクトから除外することをお勧めします。依存関係管理のためにMavenを使用している場合、pom.xml内のこの特定のJARに対して、このJARのスコープを "提供済み"として提供することができます。提供スコープは、このJARがコンパイル時に使用されることを示します。ランタイム自体によって提供される。

+0

JBossで指定した依存関係をmavenを使って除外することはできますか? –

関連する問題