Fedora Online Forum

Il forum della comunità italiana di Fedora

#1 27-05-2014 15:16:27

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'799
Sito web

[Risolto] Nuove impostazioni di sicurezza per applet java in locale

Ho un'applet che eseguo in una pagina web salvata sul computer. Stamattina, facendola girare dopo un po' che non la usavo, ho scoperto che non funzionava più.

Mi sono impazzito tutto il giorno per capire cosa non andasse (e, soprattutto, la differenza con un'altra applet che, invece, in locale andava benissimo).
Riporto la soluzione, se in futuro qualcuno avesse il mio stesso problema.
1) Se si inserisce "codebase" nel tag applet della pagina html, l'applet non gira proprio in locale (mentre funziona perfettamente se la pagina che la contiene si trova in un sito Internet)
Questo funziona sia in locale che in internet:

<applet code="NomeClasse.class" archive="../archivio.jar"></applet>

Questo non funziona in locale (la console java non riporta nulla):

<applet code="NomeClasse.class" codebase="../" archive="archivio.jar"></applet>

Quindi non usate codebase per applet che vadano eseguite in locale.

2) Se il file jar si trova nella home, compare il messaggio che è stata bloccata l'applet, dopodiché, se si sblocca (vedi punto 4), quella parte. In caso contrario, viene sollevata un'eccezione:

Fatal: Initialization Error: Unknown Main-Class. Could not determine the main class for this application

e l'applet, anche se autorizzata, non funziona. Ah, SELinux non sembra entrarci nulla (nessun avviso di errore).
Quindi non salvate pagine html che contengano applet da eseguire in locale fuori dalla home.

3) Se si vuole evitare l'ennesimo messaggio con richiesta di autorizzazione ad eseguire l'applet, bisogna inserire

Permissions: sandbox

nel file META-INF/MANIFEST.MF e permissions="sandbox" nel tag applet della pagina html:

<applet code="NomeClasse.class" archive="archivio.jar" permissions="sandbox"></applet>

se l'applet è firmata, e deve leggere e scrivere su disco, sostituire sandbox con all-permissions.
4) In ogni caso, a partire da non ricordo quale versione di java, l'esecuzione delle applet, per default, è disabilitata:

Click su "Attiva Iced-Tea Web"
Click su "Permetti stavolta"
All'applicazione ... manca l'attributo permissions. Vuoi permetterne l'esecuzione? Click su "Sì"
Un'applicazione non firmata vorrebbe essere eseguita. Lo permetti? Click su "Procedi."
Ma sei proprio sicuro? Sì, sono sicuro.
Ma proprio sicuro sicuro? Ho detto di sì.
Ma sicuro sicuro sicuro? Ma [AUTO-CENSURA]

Mi ricorda tanto i Teletubbies... Penso che, se queste fossero state le impostazioni di sicurezza ai tempi delle prime applet, di java non ricorderemmo neanche il nome...


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

Piè di pagina