Permissão para acessar etoken em um applet

5 respostas
R

Tenho um token ,e estou utilizando um applet. Estou tendo um problema relacionado a permissão no applet e não sei como resolver,aqui vai o stack trace:

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.security.pkcs11")
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
	at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source)
	at sun.plugin2.applet.AWTAppletSecurityManager.checkPackageAccess(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at net.newtecnologia.nfe.modelo.certificado.a3.DadosCertificado.<init>(DadosCertificado.java:18)
	at nfegui.view.TokenApplet.btnVisualizarActionPerformed(TokenApplet.java:161)
	at nfegui.view.TokenApplet.access$100(TokenApplet.java:19)
	at nfegui.view.TokenApplet$2.actionPerformed(TokenApplet.java:105)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

No arquivo applet.policy adicionei:

grant {
    permission java.security.AllPermission;
    permission java.lang.RuntimePermission "accessClassInPackage.sun.security.pkcs11.wrapper";
    permission java.lang.RuntimePermission "accessClassInPackage.sun.security.pkcs11";
};

Mas não resolveu.

5 Respostas

matheuslmota

A Applet já está assinada?

R

assinei,dá esse erro:

java.lang.SecurityException: trusted loader attempted to load sandboxed resource from file:/D:/Projects/NFeGUI/build/classes/
	at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source)
	at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1500(Unknown Source)
	at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.checkResource(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Esse é o codigo da pagina do applet:

<H3><HR WIDTH="100%">P&#65533;gina Applet HTML<HR WIDTH="100%"></H3>

<P>
<APPLET codebase="classes" code="nfegui/view/TokenApplet.class" archive="anfe.jar,aAppletNFe.jar" width=350 height=200></APPLET>
</P>

<HR WIDTH="100%"><FONT SIZE=-1><I>Gerado por NetBeans IDE</I></FONT>
</BODY>
</HTML>
matheuslmota

Tente colocar o java policy dentro do seu jar. Aqui há um exemplo de como fazer isso:
http://www.javakb.com/Uwe/Forum.aspx/java-security/606/Policy-file-in-a-Jar

R

não funcionou continua com o mesmo erro

E

Isso quer dizer que você está tentando puxar algo de um arquivo, não do jar. (para provar que é isso, tente rodar esse programa em uma outra máquina, que não tenha os fontes do seu programa instalados). Provavelmente você terá um erro mais esquisito ainda no Java Console.

Certo?

Criado 25 de junho de 2012
Ultima resposta 25 de jun. de 2012
Respostas 5
Participantes 3