21 * $Id: LoadDocument.java,v 1.2.4.1 2005/09/06 07:14:12 pvedula Exp $ |
21 * $Id: LoadDocument.java,v 1.2.4.1 2005/09/06 07:14:12 pvedula Exp $ |
22 */ |
22 */ |
23 |
23 |
24 package com.sun.org.apache.xalan.internal.xsltc.dom; |
24 package com.sun.org.apache.xalan.internal.xsltc.dom; |
25 |
25 |
|
26 import com.sun.org.apache.xalan.internal.XalanConstants; |
26 import java.io.FileNotFoundException; |
27 import java.io.FileNotFoundException; |
27 |
28 |
28 import javax.xml.transform.stream.StreamSource; |
29 import javax.xml.transform.stream.StreamSource; |
29 |
30 |
30 import com.sun.org.apache.xalan.internal.xsltc.DOM; |
31 import com.sun.org.apache.xalan.internal.xsltc.DOM; |
31 import com.sun.org.apache.xalan.internal.xsltc.DOMCache; |
32 import com.sun.org.apache.xalan.internal.xsltc.DOMCache; |
32 import com.sun.org.apache.xalan.internal.xsltc.DOMEnhancedForDTM; |
33 import com.sun.org.apache.xalan.internal.xsltc.DOMEnhancedForDTM; |
33 import com.sun.org.apache.xalan.internal.xsltc.TransletException; |
34 import com.sun.org.apache.xalan.internal.xsltc.TransletException; |
|
35 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; |
34 import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; |
36 import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; |
35 import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl; |
37 import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl; |
|
38 import com.sun.org.apache.xalan.internal.utils.SecuritySupport; |
36 import com.sun.org.apache.xml.internal.dtm.DTM; |
39 import com.sun.org.apache.xml.internal.dtm.DTM; |
37 import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator; |
40 import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator; |
38 import com.sun.org.apache.xml.internal.dtm.DTMManager; |
41 import com.sun.org.apache.xml.internal.dtm.DTMManager; |
39 import com.sun.org.apache.xml.internal.dtm.ref.DTMDefaultBase; |
42 import com.sun.org.apache.xml.internal.dtm.ref.DTMDefaultBase; |
40 import com.sun.org.apache.xml.internal.dtm.ref.EmptyIterator; |
43 import com.sun.org.apache.xml.internal.dtm.ref.EmptyIterator; |
197 if (newdom == null) { |
200 if (newdom == null) { |
198 final Exception e = new FileNotFoundException(originalUri); |
201 final Exception e = new FileNotFoundException(originalUri); |
199 throw new TransletException(e); |
202 throw new TransletException(e); |
200 } |
203 } |
201 } else { |
204 } else { |
|
205 String accessError = SecuritySupport.checkAccess(uri, translet.getAllowedProtocols(), XalanConstants.ACCESS_EXTERNAL_ALL); |
|
206 if (accessError != null) { |
|
207 ErrorMsg msg = new ErrorMsg(ErrorMsg.ACCESSING_XSLT_TARGET_ERR, |
|
208 SecuritySupport.sanitizePath(uri), accessError); |
|
209 throw new Exception(msg.toString()); |
|
210 } |
|
211 |
202 // Parse the input document and construct DOM object |
212 // Parse the input document and construct DOM object |
203 // Trust the DTMManager to pick the right parser and |
213 // Trust the DTMManager to pick the right parser and |
204 // set up the DOM correctly. |
214 // set up the DOM correctly. |
205 XSLTCDTMManager dtmManager = (XSLTCDTMManager)multiplexer |
215 XSLTCDTMManager dtmManager = (XSLTCDTMManager)multiplexer |
206 .getDTMManager(); |
216 .getDTMManager(); |