XML i applet
Hejsa!I forlængelse af spm. http://www.eksperten.dk/spm/250287 har jeg stadig diverse problemer. Jeg kan uden problemer læse en (lokal) fil fra en signeret applet. Men når jeg bruger en XML-parser til at parse samme fil, går det galt (jeg har prøvet både JDOM og dom4j).
Min kode ser ud som følger:
import java.applet.*;
import org.dom4j.*;
import org.dom4j.io.*;
import java.io.*;
import java.util.Iterator;
public class SignedAppletDemo extends Applet
{
public void init()
{
try
{
XMLFromFile();
}
catch (Exception ex)
{
System.out.println("FEJL FEJL FEJL");
ex.printStackTrace();
}
}
// Virker ikke... Giver en Exception: access denied (java.io.FilePermission D:\Savs\DATA\XML\wind29.xml read)
public void XMLFromdom4j() throws Exception
{
SAXReader xmlReader = new SAXReader();
File f = new File("D:/Savs/DATA/XML/wind29.xml");
Document doc = xmlReader.read(f);
Element root = doc.getRootElement();
Iterator elementIterator = root.elementIterator();
while(elementIterator.hasNext())
{
Element element = (Element)elementIterator.next();
System.out.println(element.getName());
}
}
// Virker helt fint, fra browser (plug-in 1.4), signeret
private void XMLFromFile() throws Exception
{
File f = new File("D:/Savs/DATA/XML/wind29.xml");
FileReader read = new FileReader(f);
char[] chars = new char[55];
read.read(chars);
System.out.println(new String(chars));
}
}
Som beskrevet i det ovenstående spm. har jeg fuldt http://developer.java.sun.com/developer/technicalArticles/Security/Signed/ og bl.a. lavet en policy-file. Jeg kan dog ikke helt gennemskue, hvordan den kommer ind i billedet, for den bliver jo ikke kaldt nogle steder, når jeg kører det fra en browser (plug-in version 1.4).
Ud over eksemplet fra ovenstående link har jeg også prøvet følgende i policy-filen:
keystore "raystore";
grant signedBy "susan"
{
permission java.security.AllPermission;
permission java.io.FilePermission "<<ALL FILES>>", "read";
};
Det er ikke umiddelbart meningen, at det skal køre fra en webserver, men bare startes op lokalt. Er det et problem?
på forhånd tak for svarene!
