Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

java.security.AccessControlException: access denied !!!

46 views
Skip to first unread message

Flex

unread,
Feb 16, 2005, 5:06:03 AM2/16/05
to
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

XamuL

unread,
Feb 16, 2005, 5:29:48 AM2/16/05
to
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
---------------------------------------------------

Flex

unread,
Feb 16, 2005, 6:14:38 AM2/16/05
to
Il Wed, 16 Feb 2005 11:29:48 +0100, XamuL ha scritto:

> 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

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 ,

Flex

unread,
Feb 16, 2005, 6:29:19 AM2/16/05
to
Il Wed, 16 Feb 2005 11:29:48 +0100, XamuL ha scritto:

> Se la distribuisci devi certificarla perchè possa aprire una connessione
> 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 ,

XamuL

unread,
Feb 16, 2005, 7:26:09 AM2/16/05
to
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.

Flex

unread,
Feb 16, 2005, 7:40:08 AM2/16/05
to
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 ,

XamuL

unread,
Feb 17, 2005, 4:30:13 AM2/17/05
to
Quando lo risolvi mi dici dov'era il problema... sono curioso di sapere

Flex

unread,
Feb 17, 2005, 6:16:01 AM2/17/05
to
Il Thu, 17 Feb 2005 10:30:13 +0100, XamuL ha scritto:

> 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 ,

Flex

unread,
Feb 20, 2005, 10:51:23 AM2/20/05
to
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.

Flex

unread,
Feb 20, 2005, 10:52:44 AM2/20/05
to
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)

n.n

unread,
Feb 20, 2005, 1:16:40 PM2/20/05
to
> 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.

si l'appletviewer e' una pplicazone stand alone che ti lascia dare tutto

Nicola

--------------------------------
Inviato via http://arianna.libero.it/usenet/

n.n

unread,
Feb 20, 2005, 1:22:29 PM2/20/05
to
Il 20 Feb 2005, 16:52, Flex <flex...@ammsreprogrammareweb.com> 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

Flex

unread,
Feb 20, 2005, 2:10:28 PM2/20/05
to
Il Sun, 20 Feb 2005 18:22:29 +0000, n.n ha scritto:

> 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

Questo e' il mio :

grant {
permission java.io.FilePermission "/tmp", "read,execute,write";
permission java.io.FilePermission "/home/flex/java", "read,execute,write";
permission java.security.Allpermission;
}

come vedi gli manca solo la licenza di uccidere :-)

[CUT]


> 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

e che fai installi un trojan in Java :D

--
Ciao Flex
________________________________________________
Chi sa ascoltare non solo e' simpatico a tutti ,

Flex

unread,
Feb 21, 2005, 4:03:33 AM2/21/05
to
Il Mon, 21 Feb 2005 08:59:06 +0000, n.n ha scritto:

> Il 20 Feb 2005, 20:10, Flex <flexNO...@REprogrammareweb.com> ha >


>> grant {
>> permission java.io.FilePermission "/tmp", "read,execute,write";
>> permission java.io.FilePermission "/home/flex/java",
>> "read,execute,write";
>> permission java.security.Allpermission;
>> }

> Quello che ti manca se vuoi usare la applet per fare queste cose e' firmarla
>
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 ?

n.n

unread,
Feb 21, 2005, 3:59:06 AM2/21/05
to
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

XamuL

unread,
Feb 22, 2005, 3:41:27 AM2/22/05
to
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

XamuL

unread,
Feb 22, 2005, 3:36:19 AM2/22/05
to
>
> 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

ahahahahahahah bastard inside :DDDDDDDDDDDDDDDD


--
---------------------------------------------------
......vieni a trovarmi http://www.glz.it

......dai voce al tuo sito e monitorizza gli accessi

Flex

unread,
Feb 22, 2005, 2:08:35 PM2/22/05
to
Il Tue, 22 Feb 2005 09:41:27 +0100, XamuL ha scritto:

> 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 ,

Flex

unread,
Feb 23, 2005, 3:45:40 AM2/23/05
to
Il Wed, 16 Feb 2005 10:06:03 +0000, Flex ha scritto:

> 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.

> [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 ,

0 new messages