Assinar Applet, como? ajuda ae

E ai pessoal,

Bom, estou fazendo um jogo usando applet, neste jogo existe um sistema de ranking que precisa salvar um arquivo.dat no mesmo local onde estão todos os arquivos .class, porém li que existe uma politica de segunrança chamada sandbox, que não permite este tipo de operações utilizando applet.
Tentei fazer o codigo normalmente para persistir o arquivo e ele disparava uma exceção, (FilePermission Exception arquivo.dat read).

Andei lendo por ai e descobri que precisa assinar o applet para que ele faça isso, li também em outro lugar que era só criar um arquivo java.policy com as permissoes.

Desconfio que para a assinatura ele esteja somente habilitado a salvar arquivos na maquina de quem está acessando o applet, é isso?
Caso alguém que leia esse tópico entenda bem sobre o assunto, poderia me dizer como posso fazer pra salvar este arquivo sem disparar a excessao?

Abraço

Na verdade este tipo de situação chama-se Out Of The Sandbox. Para permitir que o applet tenha todos os privilégios do usuário logado deve ser aplicado uma assinatura.

Veja os passos (linhas de comando) para aplicar a assinatura em seu applet:

  1. Criar uma assinatura digital (que será aplicada ao applet):
keytool -genkey -alias pgaloppini

Onde keytool é o gerador do certificado e pgaloppini o nome do certificado registrado.

  1. Aplicar o certificado criado ao seu applet:
jarsigner applet.jar pgaloppini

Onde jarsigner é utilitário para assinar o applet, applet.jar o applet a ser assinado e pgaloppini o certificado a ser aplicado.

Pronto!

Todos os utilitários citados já acompanham o JDK.

t+

opa kra, obrigado por me responder…

Consigo fazer a key, no entanto, quando vou associar a key ao .jar da um erro:

Exception in thread “main” java.lang.NoClassDefFoundError: sun/security/tools/JarSigner

uq eu faço??

abraços

E ae pgaloppini,

Esse erro pode estar acontecendo se seu CLASSPATH não estiver configurado direito… Bem, de qualquer maneira, recomendo que você olhe esse tutorial da UFSC: Assinatura de Applet. Quando precisei assinar um applet para um projeto segui esses passos e deu certo. Só depois descobri uma tag do Ant que faz isso: SingJar

Tenta ai, e depois nos conta se conseguiu!

Abraços,
Eduardo

Atualizando os links,

http://gcseg.das.ufsc.br/jacoweb/restrito/documentos/assinatura/index.htm - Assinatura de applet.

http://ant.apache.org/manual/Tasks/signjar.html - Task do Ant.

Att,

Bob