Java Filesystem Permisson ermitteln

fr3ed

Grünschnabel
Hallo,

kann mir jemand sagen warum folgender Code immere eine AccessControlException mit "Access denied" wirft?
Java:
AccessController.checkPermission(new FilePermission("D:\\test\\", "read,write"));
Ich habe definitiv Schreibrechte auf diese Verzeichnis! Laut Java-Api sollte dann einfach nichts geschehen.

Ich bin ratlos... Kann mir jemand erklären, weshalb an der Stelle IMMER die AccessControllException geworfen wird?

Vorab, das File per canWrite() zu checken genügt nicht. Darüber wird nur abgedeckt, ob das Objekt einen Schreibschutz hat oder nicht, nicht aber die eigentlichen Schreibrechte auf OS-Ebene.

Grüße
 
Zuletzt bearbeitet:
Das erste was mir auffällt sind die Backslashes. In Java kannst du (auch unter Windows) ganze normale Shlashs verwenden. dann musst du auch nicht escapen. Das löst zwar dein Problem nicht könnte aber dennoch hilfreich sein.
 
Naja, dem Compiler ist es herzlich egal ob da escapede Backslashes als Separatoren stehen oder normale Slashes. Mit meinem Problem hat das wirklich nichts zu tun.
 
Zuletzt bearbeitet:
If a requested access is allowed, checkPermission returns quietly. If denied, an AccessControlException is thrown. AccessControlException can also be thrown if the requested permission is of an incorrect type or contains an invalid value. Such information is given whenever possible. Suppose the current thread traversed m callers, in the order of caller 1 to caller 2 to caller m. Then caller m invoked the checkPermission method. The checkPermission method determines whether access is granted or denied based on the following algorithm:

Siehe http://java.sun.com/javame/reference/apis/jsr217/java/security/AccessController.html

Ohne mich jetzt groß damit beschäftigt zu haben, bist du dir sicher das du die Rechte mit "read,write" prüfen kannst?

Hast du es mal nur mit "read" bzw. "write" probiert?
 
Japp, hab es auch schon nur mit write und read probiert. Auch mit der zugehörigen Konstante
Java:
SecurityConstants.FILE_WRITE_ACTION
. Jeder der Fälle wirft besagte Exception.
 
Nun gut ... da habe ich wohl zu Anfang den Gedanken nicht zu Ende gedacht und mich von dem Namen der Funktion verleiten lassen.
Es wird die policy Datei gecheckt und nicht generell auf das Dateisystem.
Da hätte ich zu Anfang genauer lesen sollen.
 

Neue Beiträge

Zurück