You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Wolfgang Klaus (JIRA)" <de...@myfaces.apache.org> on 2006/01/26 07:32:11 UTC

[jira] Commented: (MYFACES-324) WebXmlParser throws AccessControlException in secure Tomcat

    [ http://issues.apache.org/jira/browse/MYFACES-324?page=comments#action_12364062 ] 

Wolfgang Klaus commented on MYFACES-324:
----------------------------------------

The problem as described above is still present in MyFaces 1.1.1

When replacing the _EntityResolver everything works fine.

Can some please replace the _EntityResolver as described before.

You can reproduce this error very simple. 
Remove your network cable from your computer and try to start Tomcat in Security-Mode.

Thanks

> WebXmlParser throws AccessControlException in secure Tomcat
> -----------------------------------------------------------
>
>          Key: MYFACES-324
>          URL: http://issues.apache.org/jira/browse/MYFACES-324
>      Project: MyFaces
>         Type: Bug
>     Versions: 1.0.9m9
>  Environment: java 1.5.0_04
> tomcat 5.5.9
>     Reporter: Wolfgang Klaus
>      Fix For: 1.1.0

>
> Using MyfFaces in a secure tomcat throws AccessControlException in WebXmlParser
> Here the Stacktrace:
> 18:41:53,664 FATAL WebXmlParser:105 - Unable to parse web.xml
> java.security.AccessControlException: access denied (java.net.SocketPermission java.sun.com:80 connect,resolve)
>     at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
>     at java.security.AccessController.checkPermission(AccessController.java:427)
>     at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
>     at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
>     at sun.net.www.http.HttpClient.openServer(HttpClient.java:459)
>     at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
>     at sun.net.www.http.HttpClient.New(HttpClient.java:287)
>     at sun.net.www.http.HttpClient.New(HttpClient.java:299)
>     at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:792)
>     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:744)
>     at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:669)
>     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:913)
>     at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:973)
>     at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:905)
>     at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:872)
>     at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:282)
>     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(XMLDocumentScannerImpl.java:102
>     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.ja
>     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
>     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
>     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
>     at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
>     at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
>     at org.apache.myfaces.webapp.webxml.WebXmlParser.parse(WebXmlParser.java:90)
>     at org.apache.myfaces.webapp.webxml.WebXml.init(WebXml.java:143)
> After adding the following line to catalina.policy
> permission java.net.SocketPermission "java.sun.com:80", "connect";
> Parsing of web.xml works if the computer, on which tomcat is runnig, can make connects to the internet.
> But if the computer is not able to connect to internet (e.g. after a proxy) then the above Excpetion is thrown again.
> If you run in an not secure Tomcat you get an UnknownHostException. 
> The parser allways trys to connect to http://java.sun.com.
> The following changes in WebXmlParser solves the problem.
> disable Validating for the parser. (dbf.setValidating(false))
> Do we have to validate the web.xml file. Tomcat already parses and validates the web.xml. So if an
> error in web.xml tomcat already before get an error.
> The _EntityResolver try's to load the dtd-file and that is the problem.
> With following _EntityResolver everything works fine.
> private class _EntityResolver implements EntityResolver
>  {
>         public InputSource resolveEntity(String publicId, String systemId) throws IOException
>         {
>            return new InputSource(new StringReader(""));
>         }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira