# Applet Access Denied - Beim zugriff auf eine .txt Datei



## Haase (17. Aug 2007)

Hallo Allerseits,

ich bekomme diese Fehlermeldung bei der Ausführung eines Applets im Browser:
java.security.AccessControlException: access denied (java.io.FilePermission Adressverwaltung.txt read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkRead(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)

Ich greife auf eine .txt datei zu um Text mit einem FileInputStreamReader zu lesen und mit einem BufferedWriter zu schreiben. Die .txt Datei liegt aber auf meinem Webspace mit der Berechtigung für alles CHMOD 777 drauf.
Trotzdem erscheint die "access denied" Meldung. 

Könnt Ihr mit bitte weiterhelfen, wie ich mein Applet zum laufen bekommen.

Vielen Dank im Voraus,
gruß Haase


----------



## Wildcard (17. Aug 2007)

Das Applet läuft auf dem Client, du kommst also nicht in das Dateisystem des Servers.
Sprich die txt stattdessen über ein URL an.


----------



## wayne0101 (17. Aug 2007)

und wenn's dann immer noch nicht funktioniert musst du dein applet signieren.

grüße

wayne


----------



## Haase (17. Aug 2007)

Wildcard, ich habe das gerade mit dem Zugriff auf eine URL versucht:
Wenn ich 
File file = new File("http://www.test.de/test.txt"); // geht nicht
oder
URL url = new URL("...");
File file = new File(URL); // geht leider auch nicht

Wie ist die richtige Lösung?
Thanks, gruß Haase


----------



## wayne0101 (17. Aug 2007)

ich denke, was wildcard meinte war:

```
URL url = new URL("http://.../test.txt");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(false);
connection.setUseCaches(false);
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept-Encoding", "identity"); 
connection.setRequestProperty("user-agent", "MyJavaApplication");

connection.connect();
                                
String encoding    = connection.getContentEncoding(); 
                
InputStream in = connection.getInputStream();

// hier daten aus inputstream auslesen
                
connection.disconnect();
```

kannst du natürlich auch über eine reine URLConnection machen, aber das objekt, welches du von einer URL-Instanz erhältst, welche mit "http://..." instanziiert wurde, ist automatisch von der klasse HttpURLConnection.

viel glück

wayne


----------



## Haase (24. Aug 2007)

Danke für Eure Hilfe. Naja, funktioniert irgendwie nicht. Habe es als URL auch vergebens versucht. 

Ich mach Mal was anderes


----------



## Wildcard (24. Aug 2007)

Wie gesagt darfst du nicht mit File Objekten arbeiten.
Ist die Datei denn über den Browser abrufbar?


----------



## wayne (24. Aug 2007)

und wie gesagt, bleibt dir noch zur fehlerelemination die möglichkeit das applet versuchsweise zu signieren, sofern du dich an unsere ratschläge gehalten hast, aber immer noch vom SecurityManager eine AccessControlException geworfen bekommst.


----------



## alphaChill (26. Sep 2007)

Edit: okay, habe ggf. die Lösung im FAQ gefunden: http://www.java-forum.org/de/viewtopic.php?t=11729


----------

