uso JFileChooser dentro JApplet
-
04-07-2019 - |
Pergunta
Pode um uso JApplet
um JFileChooser
para que o usuário pode selecionar um arquivo em seu disco rígido? Ou isso violaria a segurança applet Java? (Estou assumindo que as predefinições de segurança estão sendo usados. Eu não quero perguntar a meus usuários para me conceder permissões adicionais.)
Solução
Esta discussão indica que você precisa para assinar digitalmente seu applet antes de um JFileChooser
é permitido.
Outras dicas
Como mencionado, você precisa assinar seu applet, que resultam em um "aviso de segurança vaga" quando o usuário é apresentado o applet. Quando o usuário aceitar para executar este applet, o applet é dado acesso completo e funciona como uma aplicação comum com ele é implicações óbvias de segurança. Estou no mesmo dilema a respeito de uma aplicação web que estou trabalhando e ainda não está certo se ele vai ficar implantado.
Você pode, alternativamente, usar o built-in filebrowser no webbrowser e recuperar o arquivo em conteúdo de seu servidor se você estiver trabalhando com arquivos menores.
Além disso, algumas medidas de segurança que você pode fazer em relação a um applet assinado são:
-
Validando a origem do código de applet.
URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation(); if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false) return false;
-
Verificando a URL base a partir do qual o applet foi executado.
URL documentUrl = this.getDocumentBase(); if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false) return false;
Nesse caso (de usar as configurações padrão), você está correto, o gerente de segurança padrão não permite o acesso a arquivos locais.
Você provavelmente terá que usar PrivilegedAction ler qualquer coisa a partir do disco rígido do usuário. Assim como @mmyers disse que você vai ter que assinar seu applet também.
Assim, sua resposta é sim, eu tenho feito isso antes, então eu sei que pode ser feito.