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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top