Newsgroup: it.comp.java
Titolo: Concedere ad un applet i permessi di scritura?

Avrei  la necessita' di creare un applet che permetta di
leggere/scrivere file sul disco dell'utente. Ho provato a studiarmi la
parte riguardante le policies, ma da quanto ho capito utilizzare un
file policy serve solo nel caso stia girando su una macchina che
possiede tale file. Se invece la mi applet deve essere visualizzata su
una pagina web e quindi mi deve apparire per capirci la finestra per
chiedere l'autorizzazione a scrivere sul disco come faccio? Da quanto
sono riuscito a capire devo creare un applet firmata ma non ho capito
come posso crearla. Da qualche parte ho letto che si utlizza un
pacchetto microsoft ma mi pare strano che per fare qualcosa con java
si debba usare roba proprietaria ... 
Mi potete aiutare ?
La cosa per ideale  sarebbe un bell' esempio se qualcuno di voi ha gia
dovuto affrontare il rpblema potrebbe pubblicare quello che ha gia
fatto.
Ma anke link a documenti non troppo dispersivi sul arogmento sarebbero
molto graditi. 
Grazie.

 wrote in message
news:ikkhfuo7p60ltttgg...@4ax.com...



A seconda che la tua applet debba funzionare su netscape o internet 
explorer il modo di chiedere i permessi e' diverso. Inoltre devi 
distinguere se i browser usano la jvm interna o un sun plugin. 
Distinguero' i vari casi:
1) Netscape 4.XX: utilizza una jvm interna, per chiedere i permessi devi 
utilizzare l'istruzione
netscape.security.PrivilegeManager.enablePrivilege(String)
Esistono diversi "livelli" per la richiesta di permessi, 
lettura/scrittura di file e di system property, esecuzione di file, etc. 
Utili indicazioni le puoi trovare su
http://developer.netscape.com/docs/manuals/signedobj/javadoc/netscape_security_PrivilegeManager.html#_top_
Devi compilare l'applet linkando il package java40.jar, che trovi nelle 
directory di installazione di netscape. Una volta compilato devi creare 
un jar firmato utilizzando signtool e un certificato. Il certificato 
puo' essere anche un certificato di test che puoi generare anche con 
signtool (l'opzione dovrebbe essere -G, vedi l'help). Partita l'applet 
comparira' un pannello con la richiesta se accettare la richiesta di 
permessi con i dati del certificato con cui l'applet e' firmata. Se 
l'applet e' firmata con un certificato di test il certificato dovra' 
essere importato nel db dei certificati del browser e questo lo puoi 
fare selezionando il file x509.cacert dal browser che dovrai quindi 
mettere a disposizione sul web server.
2) Internet Explorer con jview: i permessi li devi chiedere con
 
com.ms.security.PolicyEngine.assertPermission(com.ms.security.PermissionID.SYSTEM);
e devi linkare in fase di compilazione il package com_ms_wfc.zip. Devi 
creare un file cab utilizzando il tool dubuild e signcode che trovi nel 
pacchetto mssdk (scaricabile dal sito Microsoft). Info le trovi sul sito 
MSDN (
msdn.microsoft.com
).
3) Netscape 6.X e Internet Explorer con sun plugin: la security e' 
cambiata. Non devi chiedere permessi nel codice. Devi solo firmare 
l'applet con un certificato valido (non di test) rilasciato da una CA 
Authority (l'eventuale import del certificato di test richiederebbe un 
import manuale nel db dei certificati della sun jvm) e l'applet deve 
essere invocata non con il tag applet ma con il tag object on embed. 
Trovi info sul sito della sun:
http://java.sun.com/products/plugin/1.3/docs/index.docs.html
Spero di essere stato chiaro ed esauriente.
GC