Applet Assinado

4 respostas
A

Boa Tarde Pessoal!

Estou desenvolvendo uma aplicação com applet onde existem 3 jars, 1(ecfassinado.jar) é da minha aplicação e os outros 2(jackson-core-lgpl-assinado-1.8.5.jar e jackson-mapper-lgpl-assinado-1.8.5.jar) são libs que eu uso, estou com problema em assinar as libs que uso, pois retorna aquele erro:

java.security.AcessControlException: acess denied(java.lang.RunTimePermission acessDeclaredMembers)

Se eu não usar as libs, apenas o jar da aplicação funciona normal, vou postar abaixo o que eu fiz, alguem poderia me ajudar?

Pagina

<!doctype html>
<html>
    <head>
    
    </head>
    <body>

        <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
        <applet name="ECFApplet" code="logic.x.ecf.applet.ECFApplet"  archive="/jackson-core-lgpl-assinado-1.8.5.jar, /jackson-mapper-lgpl-assinado-1.8.5.jar, /ecfassinado.jar" width="0" height="0"></applet>

    </body>
</html>

Assinatura applicação ecfassinado.jar

--1.pegar jar do applet

--2. Geração o par de chaves (pública e privada)
keytool -genkey -dname "cn=ECFApplet, ou=XXX, o=XXX, l=São Paulo, s=SP c=BR" -alias ECFAppletKey -keystore /opt/CHAVES/ChaveECFApplet -storepass 123456 -validity 7300


--3. Assinar o arquivo JAR
jarsigner -keystore /opt/CHAVES/ChaveECFApplet -storepass 123456 -signedjar "/var/www/ImpressoraFiscal/ecfassinado.jar" "/var/www/ImpressoraFiscal/ecf.jar" ECFAppletKey


--4. Exportar o Certificado da Chave Pública
keytool -export -keystore /opt/CHAVES/ChaveECFApplet -alias ECFAppletKey -file /opt/CHAVES/CertificadoECFApplet.x509


--5.Verificando Assinatua
keytool -import -alias ECFAppletKey -file /opt/CHAVES/CertificadoECFApplet.x509

Assinatura lib jackson-core-lgpl-assinado-1.8.5.jar

--1.pegar jar do applet

--2. Geração o par de chaves (pública e privada)
keytool -genkey -dname "cn=JacksonCoreApplet, ou=XXX, o=XXX, l=São Paulo, s=SP c=BR" -alias JacksonCoreAppletKey -keystore /opt/CHAVES/ChaveJacksonCoreApplet -storepass 123456 -validity 7300


--3. Assinar o arquivo JAR
jarsigner -keystore /opt/CHAVES/ChaveJacksonCoreApplet -storepass 123456 -signedjar "/var/www/ImpressoraFiscal/jackson-core-lgpl-assinado-1.8.5.jar" "/var/www/ImpressoraFiscal/jackson-core-lgpl-1.8.5.jar" JacksonCoreAppletKey


--4. Exportar o Certificado da Chave Pública
keytool -export -keystore /opt/CHAVES/ChaveJacksonCoreApplet -alias JacksonCoreAppletKey -file /opt/CHAVES/CertificadoJacksonCoreApplet.x509


--5.Verificando Assinatua
keytool -import -alias JacksonCoreAppletKey -file /opt/CHAVES/CertificadoJacksonCoreApplet.x509

Assinatura lib jackson-mapper-lgpl-assinado-1.8.5.jar

--1.pegar jar do applet

--2. Geração o par de chaves (pública e privada)
keytool -genkey -dname "cn=JacksonMapApplet, ou=XXX, o=XXX, l=São Paulo, s=SP c=BR" -alias JacksonMapAppletKey -keystore /opt/CHAVES/ChaveJacksonMapApplet -storepass 123456 -validity 7300


--3. Assinar o arquivo JAR
jarsigner -keystore /opt/CHAVES/ChaveJacksonMapApplet -storepass 123456 -signedjar "/var/www/ImpressoraFiscal/jackson-mapper-lgpl-assinado-1.8.5.jar" "/var/www/ImpressoraFiscal/jackson-mapper-lgpl-1.8.5.jar" JacksonMapAppletKey


--4. Exportar o Certificado da Chave Pública
keytool -export -keystore /opt/CHAVES/ChaveJacksonMapApplet -alias JacksonMapAppletKey -file /opt/CHAVES/CertificadoJacksonMapApplet.x509


--5.Verificando Assinatua
keytool -import -alias JacksonMapAppletKey -file /opt/CHAVES/CertificadoJacksonMapApplet.x509

Obrigado.

4 Respostas

tiagokihara

Cara, da uma olhada nisso…

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

como está o seu policy file?

A

tiagokihara:
Cara, da uma olhada nisso…

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

como está o seu policy file?

Olá Tiago, valeu pela força, então a minha aplicação esta no servidor, eu vou ter que mexer no java.policy da maquina do cliente também?

tiagokihara

Sim, pois o applet roda na máquina do cliente.

Se eu não me engano, além do policy file do jre, vc pode ter um outro que vc pode colocar no diretório {user.home}.

A

tiagokihara:
Sim, pois o applet roda na máquina do cliente.

Se eu não me engano, além do policy file do jre, vc pode ter um outro que vc pode colocar no diretório {user.home}.

Tiago, o estranho é que se eu nao usar as libs(jackson-core-lgpl-assinado-1.8.5.jar, jackson-mapper-lgpl-assinado-1.8.5.jar), usar somente o arquivo ecfassinado.jar(assinado) no applet eu não preciso mexer no java.policy agora se eu uso as libs eu preciso, você sabe porque?

OBS: "Fiz um teste alterando o java.policy para “allpermission”, funcionou mas eu queria ver se acho uma outra solução, pois se houver alguma outra forma de eu não precisar mexer na maquina do cliente seria ótimo.

Valeu.

Criado 21 de maio de 2012
Ultima resposta 22 de mai. de 2012
Respostas 4
Participantes 2