Ho creato un'applet di base in cui l'utente seleziona un file dal proprio disco rigido, legge la prima riga di questo file e lo passa a JavaScript per qualche ulteriore pre-elaborazione, e quindi quando si fa clic su un pulsante tenta di caricare quel file attraverso una richiesta HTTP POST. Ho trovato un'applet open source molto semplice per caricare file che ho copiato e modificato per quest'ultimo bit.Autorizzazioni applet Java
Il problema è che, tuttavia, non funziona. Sembra che stia funzionando bene, ma poi mi imbatto in due problemi relativi alle autorizzazioni. I messaggi nella Console Java dire che l'applet ha avuto accesso negato errori sui seguenti due permesso:
java.lang.RuntimePermission setFactory
java.io.FilePermission read
Lo trovo strano, perché pensavo di aver concesso il permesso di l'applet già quando ho costruito con il " opzione autofirmata "selezionata in NetBeans, quindi fa clic per confermare la piccola finestra di sicurezza nel browser.
Inoltre, la parte che ho codificato da sola, dove legge il file e passa la prima riga su JavaScript funziona correttamente. Questo è un indicatore abbastanza chiaro che l'applet è in grado di leggere dal file system locale! Il problema non si avvia finché non provo effettivamente ad avviare il caricamento. Una cosa da notare, suppongo, è che il processo di caricamento sembra funzionare in un nuovo thread, mentre il resto di tutto viene eseguito nella classe principale senza creare thread.
Sono un principiante assoluto di Java e conosco molto poco sui thread in Java; ho bisogno di passare le autorizzazioni su questo nuovo thread in qualche modo? O qualcosa in tal senso? Grazie in anticipo.
doPrivileged è estremamente pericoloso. Come sta firmando le applet. –
Come consentire alle applet di leggere i file. Nondimeno, è lì e la risposta alla domanda. –