Newsgroup: it.comp.java
Titolo: java.security.AccessControlException: access denied !!!

Ho realizzato un applet che sfrutta il server della SUN J2EE per lo
scambio dei messaggi.
L'applet funziona perfettamente sul mio PC fisso  ,ma appena la metto sul
portatile ritorna l'errore che allego. Analizzando il msg d'errore ci sono
degli errori dovuti alla connessione FTP che sinceramente non capisco cosa
abbia a che fare con la mia applicazione.
N.B. uso Linux JDK1.5 e Netbeans 4.1 e il file .java.policy e' uguale
nelle 2 macchine
java.security.AccessControlException: access denied
(java.net.SocketPermission mobileNetworkApplet.class resolve)
    at
    java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
    at
    java.security.AccessController.checkPermission(AccessController.java:427)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1117) at
    java.net.InetAddress.getAllByName0(InetAddress.java:1098) at
    java.net.InetAddress.getAllByName(InetAddress.java:1061) at
    java.net.InetAddress.getByName(InetAddress.java:958) at
    java.net.InetSocketAddress.<init>(InetSocketAddress.java:124) at
    sun.net.NetworkClient.doConnect(NetworkClient.java:157) at
    sun.net.NetworkClient.openServer(NetworkClient.java:118) at
    sun.net.ftp.FtpClient.openServer(FtpClient.java:488) at
    sun.net.ftp.FtpClient.openServer(FtpClient.java:475) at
    sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:270)
    at
    sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:352)
    at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:279)
    at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:43)
    at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:157) at
    java.security.AccessController.doPrivileged(Native Method) at
    sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:154) at
    java.lang.ClassLoader.loadClass(ClassLoader.java:306) at
    sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:118) at
    java.lang.ClassLoader.loadClass(ClassLoader.java:251) at
    sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:577) at
    sun.applet.AppletPanel.createApplet(AppletPanel.java:710) at
    sun.applet.AppletPanel.runLoader(AppletPanel.java:639) at
    sun.applet.AppletPanel.run(AppletPanel.java:319) at
    java.lang.Thread.run(Thread.java:595)
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo è simpatico a tutti ,
ma prima o poi finisce con l'imparare qualcosa

se la tua applet apre una copnnessione ftp allora in locale funziona (applet
gira in localhost fdove hai anche il server ftp) 
Se la distribuisci devi certificarla perchè possa aprire una connessione
fuori dalla sua sandbox
-- 
---------------------------------------------------
......vieni a trovarmi 
http://www.glz.it
......e monitorizza gli accessi 
http://www.talkwithus.it
......dai voce al tuo sito 
http://www.talkwithus.it
......novità java, forum e altro 
http://www.javastaff.com
---------------------------------------------------

 fuori dalla sua sandbox
Mi spieghi meglio :
io l'ho realizzata con Netbeans sul mio PC fisso , poi ho copiato tutta la
cartella del progetto sul notebook incluso il file .java.policy dove ,
sempre con Netbeans, ritorna quell'errore.
Cosa c'entra l'FTP ?
P.S. Ho disabilitato tutte le funzionalita' legate a J2EE per sincerarmi
che il problema non fosse quello
-- 
Ciao Flex
[X contattarmi togli NONSPAMM RE dall'indirizzo]
________________________________________________
Chi sa ascoltare non solo e' simpatico a tutti ,


 fuori dalla sua sandbox
Ho notato un'altra cosa (forse non c'entra) sul PC dove l'applet funziona
in appletview appare [nomefile].class , sul notebook ./[nomefile].class 
Sara' un problema legato al path ?
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo e' simpatico a tutti ,


Ftp centra perché la tua vm non da all'applicazione il permesso di aprire la
connessione.
Lo stack trace indica che il problema tuo è di configurazione delle policy
di sicurezza.
Un applet in esecuzione in un browser non può accedere al filesytem o aprire
connessione a meno che non sia firmata, e al caricamento viene chiesto
all'utente di accettare o rifiutare il ceritificato.
non so come funziona l'appletviewer perchè non lo uso spesso , ma se
l'appletviewer emula il browser non ti consente di aprire la connessione.


Forse ho scoperto il problema , se digito :
ldd /opt/jdk1.5.0_01/bin/appletviewer mobileNetworkApplet.html
/opt/jdk1.5.0_01/bin/appletviewer:
                libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7fcc000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7f04000) libdl.so.2
        => /lib/tls/libdl.so.2 (0xb7f01000) libc.so.6 =>
        /lib/tls/libc.so.6 (0xb7dcd000) /lib/ld-linux.so.2 =>
        /lib/ld-linux.so.2 (0xb7fea000)
mobileNetworkApplet.html:
ldd: warning: you do not have execution permission
for`./mobileNetworkApplet.html'
        not a dynamic executable
non capisco perche' non la esegue dato che i permessi c'e' li ha e il
.java.policy della home e' il seguente :
grant  {
    permission java.io.FilePermission "/tmp", "read,execute,write";
    permission java.io.FilePermission "/home/flex/java", "read,execute,write";
    permission java.security.Allpermission;
       }
Quale potrebbe essere la soluzione ? 
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo è simpatico a tutti ,


Quando lo risolvi mi dici dov'era il problema... sono curioso di sapere


 Quando lo risolvi mi dici dov'era il problema... sono curioso di sapere
Certo , quando e se lo trovo posto tutto
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo e' simpatico a tutti ,


Smanettando ed aggiornando JRE dalla 1.4 alla 1.5 l'errore e' cambiato :
Problem to redirect output The exception details:
java.security.AccessControlException: access denied (java.lang.RuntimePermission setIO)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
Effettivamente ho redireto lo stdout e stderror dalla consolle all'Applet,
ma ancora non capisco perche' su questa macchina non gira e sull'altra si.


Scusate , vi allego l'output completo
Problem to redirect output The exception details:
java.security.AccessControlException: access denied (java.lang.RuntimePermission setIO)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
        at java.security.AccessController.checkPermission(AccessController.java:427)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.System.checkIO(System.java:207)
        at java.lang.System.setOut(System.java:147)
        at mobileNetworkApplet.init(mobileNetworkApplet.java:103)
        at sun.applet.AppletPanel.run(AppletPanel.java:373)
        at java.lang.Thread.run(Thread.java:595)
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
        at java.security.AccessController.checkPermission(AccessController.java:427)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
        at java.lang.Runtime.exit(Runtime.java:88)
        at java.lang.System.exit(System.java:868)
        at mobileNetworkApplet.init(mobileNetworkApplet.java:107)
        at sun.applet.AppletPanel.run(AppletPanel.java:373)
        at java.lang.Thread.run(Thread.java:595)


 l'appletviewer emula il browser non ti consente di aprire la connessione.
si l'appletviewer e' una pplicazone stand alone che ti lascia dare tutto
Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha
come ti ha gia' spiegato xamul un applet ha delle limitazioni:
non puo accedere
-) al file system del pc locale
-) alle variabili di ambiente del pc locale
-) puo' aprire una socket esclusivamente con il server da cui proviene
queste limitazioni si possono superare solo con la firma dell'applet
in quesato cason nel file .java.policy
potrai dare all'applet tutte o alcuni liberta' se chi scari ca le accetta
il tuo certificato
se sei in un ambiente intranet puoi tranquillamente fare un ceretificato tuo
con il tool che trovi nel jdk
firmi il jar della applet con questo certificato e chi usa l'applet deve
solo la prima volta dire che si accetta il certificato
appena ha accettato di solito io gli faccio a pezzi il .java.policy e gli
prendo il controllo della macchina gh gh
ma questa e' una altra storia
ciao Nicola


 storia
e che fai installi un trojan in Java :D
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo e' simpatico a tutti ,


 
Scusa l'ignoranza : ma se nel file .java.policy dopo la keyword grant non
c'e' il nome dell'applet tutto quello che segue non dovrebbe riferirsi a
qualsiasi codice eseguito dall'utente che ha quel file nella home ?


                    Il 20 Feb 2005, 20:10, Flex <flexNO...@REprogrammareweb.com> ha >
come vedi gli manca solo la licenza di uccidere :-)
A parte la battuta sul controllo dell amacchina, che in realta' mi e'
successo di recente per una applicazione che ho rilasciato.
Quello che ti manca se vuoi usare la applet per fare queste cose e' firmarla
ciao Nicola


Prova a cerificarla ci metti 5 min e togli il dubbio a tutti
-- 
---------------------------------------------------
......vieni a trovarmi 
http://www.glz.it
......monitorizza gli accessi 
http://www.talkwithus.it


 ma questa e' una altra storia
ahahahahahahah bastard inside :DDDDDDDDDDDDDDDD
-- 
---------------------------------------------------
......vieni a trovarmi 
http://www.glz.it
......dai voce al tuo sito e monitorizza gli accessi


 Prova a cerificarla ci metti 5 min e togli il dubbio a tutti
Infatti , domani mattina cerco un po' di documentazione su come firmare le
applet con JDK 1.5 (ho scoperto solo adesso che hanno tolto javakey) e ci
provo. Vi faccio sapere al + presto.
P.S. Se avete qualche valido link su come firmare le applet , fornitemelo
pure.
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo è simpatico a tutti ,


 [MEGACUT]
Finalmente ho risolto , dopo aver provato migliaia di strade, il problema
era l'url del code del file html .
Anche se non ho capito il motivo se sostituisco ./[nomeApplet] con
[nomeApplet] tutto funziona a meraviglia.
P.S. Firmare un Applet non e' poi un meccanismo cosi' veloce :-)
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo e' simpatico a tutti ,
