users@jaxb.java.net

Re: Unsigned Applets & JAXB

From: Stefan H Westlund <d98-swe_at_javasoul.net>
Date: Fri, 20 Jun 2003 16:28:53 +0200

Hello again!
This is a completion of my last mail yesterday. The JAXB-RI is the latest
from the JWSDP1.2. (jwsdp-1_2-windows-i586.exe)
The Applet works very well when running in signed mode, but will throw an
exception in unsigned mode due to a security check. This check is caused by
classes in the JWSDP package which I can not control.
Is it impossible to get this work with Applets and JAXB? It seems like this
is a insoluble problem since the JAXB classes force a illegal
System.getProperty() check. I have scanned this listgroup completely but
there is noone who has a solution to this problem. Why is JAXB using such
checks if Applets can't handle them?

Best Regard
//Stefan W

----------------------------------------------------------------------------
------------------------------------------

Java(TM) Plug-in: Version 1.4.1_03
Anv?nder JRE-version 1.4.1_03 Java HotSpot(TM) Client VM
Anv?ndarens hemkatalog = C:\Documents and Settings\d98-swe
Proxy-konfiguration: Ingen proxy
----------------------------------------------------

java.security.AccessControlException: access denied
(java.util.PropertyPermission java.home read)
 at
java.security.AccessControlContext.checkPermission(AccessControlContext.java
:270)
 at
java.security.AccessController.checkPermission(AccessController.java:401)
 at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
 at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1291)
 at java.lang.System.getProperty(System.java:572)
 at
org.apache.xerces.util.SecuritySupport12$2.run(SecuritySupport12.java:89)
 at java.security.AccessController.doPrivileged(Native Method)
 at
org.apache.xerces.util.SecuritySupport12.getSystemProperty(SecuritySupport12
.java:86)
 at
org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:187)
 at
org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:137)
 at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:140)
 at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:125)
 at org.apache.xerces.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:102)
 at
org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImp
l.java:95)
 at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.getXMLReader(AbstractUnmarsh
allerImpl.java:80)
 at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshall
erImpl.java:131)
 at granska.MyFrame.getRoot(MyFrame.java:253)
 at granska.MyFrame.access$2(MyFrame.java:126)
 at granska.MyFrame$AnalyzeThread.run(MyFrame.java:315)

java.security.AccessControlException: access denied
(java.util.PropertyPermission java.home read)
 at
java.security.AccessControlContext.checkPermission(AccessControlContext.java
:270)
 at
java.security.AccessController.checkPermission(AccessController.java:401)
 at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
 at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1291)
 at java.lang.System.getProperty(System.java:572)
 at
org.apache.xerces.util.SecuritySupport12$2.run(SecuritySupport12.java:89)
 at java.security.AccessController.doPrivileged(Native Method)
 at
org.apache.xerces.util.SecuritySupport12.getSystemProperty(SecuritySupport12
.java:86)
 at
org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:187)
 at
org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:137)
 at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:140)
 at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:125)
 at org.apache.xerces.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:102)
 at
org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImp
l.java:95)
 at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.getXMLReader(AbstractUnmarsh
allerImpl.java:80)
 at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshall
erImpl.java:131)
 at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshall
erImpl.java:99)
 at granska.MyFrame.getRoot(MyFrame.java:258)
 at granska.MyFrame.access$2(MyFrame.java:126)
 at granska.MyFrame$AnalyzeThread.run(MyFrame.java:315)

----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------

My method is:

  private Root getRoot( String _text) {
    JAXBContext jc = null;
    Unmarshaller unmarshaller = null;
    try {
      jc = JAXBContext.newInstance( "primer");
      unmarshaller = jc.createUnmarshaller();
      unmarshaller.setValidating( true);
    } catch( Exception e) {
      e.printStackTrace();
    }
    try {
      char[] chars = _text.toCharArray();
      HttpURLConnection servletConnection =
(HttpURLConnection)MyStatic.getURL().openConnection();
      servletConnection.setDoOutput( true);
      servletConnection.setDoInput( true);
      servletConnection.setUseCaches( true);
      servletConnection.setRequestMethod( "POST");
      servletConnection.setRequestProperty( "Content-length",
String.valueOf( chars.length));
      servletConnection.connect();
      OutputStreamWriter toServlet = new OutputStreamWriter(
servletConnection.getOutputStream());
      toServlet.write("text=");
      toServlet.write( chars);
      toServlet.flush();
      toServlet.close();
      InputSource source = new InputSource(
servletConnection.getInputStream());
      source.setEncoding( "UTF-8");
      return (Root)unmarshaller.unmarshal( source);
    } catch( Exception e) {
      e.printStackTrace();
    }
    try {
      return (Root)unmarshaller.unmarshal( new StreamSource( new
StringReader( "<Root></Root>")));
    } catch( Exception e) {
      e.printStackTrace();
    }
    return null;
  }