tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Anime-Otaku
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
327
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    fr3ed fr3ed ist offline Rookie
    Registriert seit
    Jun 2011
    Ort
    SB
    Beiträge
    7
    Hallo,

    kann mir jemand sagen warum folgender Code immere eine AccessControlException mit "Access denied" wirft?
    Code java:
    1
    
    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
    Geändert von fr3ed (08.06.11 um 15:30 Uhr)
     

  2. #2
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    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.
     

  3. #3
    fr3ed fr3ed ist offline Rookie
    Registriert seit
    Jun 2011
    Ort
    SB
    Beiträge
    7
    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.
    Geändert von fr3ed (08.06.11 um 15:28 Uhr)
     

  4. #4
    Avatar von zer0
    zer0 zer0 ist offline Mitglied Brokat
    Registriert seit
    Oct 2009
    Beiträge
    323
    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...ontroller.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?
     
    Wenn dir mein Beitrag hilfreich war darfst du gerne Danke klicken! :)

    watch my blog @ websocialist.blogspot.com

  5. #5
    fr3ed fr3ed ist offline Rookie
    Registriert seit
    Jun 2011
    Ort
    SB
    Beiträge
    7
    Japp, hab es auch schon nur mit write und read probiert. Auch mit der zugehörigen Konstante
    Code java:
    1
    
    SecurityConstants.FILE_WRITE_ACTION
    . Jeder der Fälle wirft besagte Exception.
     

  6. #6
    fr3ed fr3ed ist offline Rookie
    Registriert seit
    Jun 2011
    Ort
    SB
    Beiträge
    7
    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.
     

  7. #7
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    So ein Check gibt es leider bei Java 6 noch nicht afaik. Siehe zB http://stackoverflow.com/questions/4...tory-with-java


    In Java 7 (diesen Sommer) gibt es eine viel bessere IO-API, wo man so etwas dann hoffentlich prüfen kann. (attributes)
    fr3ed bedankt sich. 
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

Ähnliche Themen

  1. Neues FileSystem API in Java 7
    Von Thomas Darimont im Forum Java
    Antworten: 0
    Letzter Beitrag: 11.03.09, 00:49
  2. Java generics: generischen Typ ermitteln?
    Von DarthShader im Forum Java
    Antworten: 10
    Letzter Beitrag: 16.04.08, 07:43
  3. Antworten: 2
    Letzter Beitrag: 31.12.07, 20:51
  4. Antworten: 2
    Letzter Beitrag: 06.06.07, 16:21
  5. Java Version ermitteln
    Von Luixx im Forum Java
    Antworten: 2
    Letzter Beitrag: 21.09.05, 14:15

Stichworte