Assinador TJPR projudi

Estou tentando assinar um documento no Projud do TJPR com token A3. Estava tentando com o Icetea, não consegui. Mudei o para o OpenWebSing, mas continua dando erro, já troquei pelo Java 8. e ele retornona o seuginte erro:

net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report.
	at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:414)
	at net.sourceforge.jnlp.Launcher.access$300(Launcher.java:72)
	at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:661)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:407)
	... 2 more
Caused by: java.lang.NullPointerException
	at br.jus.tjpr.assinadordesktop.AssinadorDesktopApp.main(AssinadorDesktopApp.java:298)
	... 7 more

Ele reconhece o certificado, uma vez que para entrar no Projudi precisa, mas quando baixa o arquivo .jnlp, ele executa o OpenWebSing e da esse erro
alguem pode me ajudar?

@Natanael.755 e @CharlesStna por isso insisto tanto de termos a opção de instalar o certificado A3, no welcome.

Welcome é uma aplicação

O painel de boas-vindas do TigerOS

Entendi. Mas alguma solução para esse problema?

Pela ia

Passo a Passo: Configuração do Token A3 no Linux

  1. Instalação dos Drivers (SafeSign/TokenAdmin):

    • Baixe o driver .deb (para Ubuntu/Debian) ou .rpm (para Fedora) fornecido pela sua Autoridade Certificadora ou pelo site do Serpro.

    • Instale o pacote gerenciador do token (ex: SafeSign IC Standard).

    • Conecte o token e verifique se o programa TokenAdmin ou token_admin reconhece o dispositivo.

  2. Configuração no Firefox (Método PKCS#11):

    • O Projudi funciona melhor no Firefox. Nota: O Firefox instalado via Snap/Flatpak não acessa portas USB corretamente; instale a versão nativa .deb.

    • No Firefox, vá em: Configurações > Privacidade e Segurança > Certificados > Dispositivos de Segurança.

    • Clique em “Carregar”, dê um nome (ex: TokenA3) e selecione o caminho da biblioteca do token (geralmente /usr/lib/libeToken.so ou /usr/lib/libSafeSignIC_Standard.so).

Configuração do PJeOffice (Alternativa):

  • Para garantir a assinatura, instale o PJeOffice Pro (versão Linux).

  • Execute o PJeOffice, acesse as configurações e verifique se ele reconhece o token

Problemas Comuns

  • Token não reconhecido: Verifique se o pacote pcscd está instalado e rodando (sudo service pcscd start).

  • Senha PIN: A3 exige senha (PIN) a cada assinatura.

  • Driver Safenet: Em distribuições Ubuntu, pode ser necessário instalar drivers específicos para tokens Safenet 5100/5110.

Atenção: Em distribuições recentes (Ubuntu 24.04+), o libeToken.so pode depender de pacotes obsoletos, sendo necessário sudo apt install libnss3-tools ou usar o PJeOffice que gerencia essas dependências automaticament

Não conheço o app

Talvez seja necessário instalar o pcscd

Obrigado pela ajuda amaigo. Entretanto meu firefox esta reconhecendo normalmente o certificado. Na verdade eu já uso ele em outros tribunais e com o PJeOffice. O problema e no projudi, que tem um sistema de assinatura diferente ele baixa um arq .jnpl e é na abertura desse aquivo que esta o problema

Apareceu isso no ia

  • Prepare the JAR files: All JAR files referenced in your JNLP file must be signed with the same certificate.

    • You can use the jarsigner tool included in the JDK to do this. The command is typically:

      bash

      jarsigner -keystore <keystore_path> <jar_file_path> <alias_name>
      
      

Por exemplo

Pede para procurar por : jnlp sign linux

Parece que o Java Web Start não está conseguindo abrir o arquivo do assinador .jnlp

Este arquivo é o fornecido pelo TJPR na página https://projudi.tjpr.jus.br/projudi/softwaresRequeridos.jsp, correto?

Ao clicar ele salva um arquivo chamado:

launch-advogados.jnlp

Correto?

Inspecionando esse arquivo (é possível inspecioná-lo usando abrir com → qualquer editor de texto), vejo que ele parece uma espécie de invólucro que aponta para o verdadeiro assinador, disponível online. Juntando a URL que aparece dentro deste *.jnlp com o nome do assinador real, que é “assinadorDesktop-full.jar”, é possível baixar este último diretamente.

Por exemplo, usando o seguinte comando, num terminal:

wget https://portal.tjpr.jus.br/tjpr-assinador/assinadorDesktop-full.jar

No mesmo terminal, após o download terminar, consigo executar o assinador como se fosse um programa java comum:

java -jar assinadorDesktop-full.jar

Considerando-se porém que queremos ter certeza de usar a versão Java 8 (descrita como compatível) e também especificar a classe “Class” dentro do aplicativo, podemos refazer a linha de comando para que a assinatura realmente funcione adequadamente (caso o Java 8 esteja em outro local na sua distribuição e/ou versão, corrija o caminho para o certo):

/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -cp assinadorDesktop-full.jar br.jus.tjpr.assinadordesktop.AssinadorDesktopApp

E ele carrega normalmente:

Aí só tem que seleconar o provedor PKCS11 correto.

Efetuei testes aqui de assinatura digital de arquivos PDF e o assinador não funcionou com Java 25, mas funcionou corretamente com o Java 8.

Também instalei o IcedTea-netx mas ele força o uso do java 21 (que não funciona).

Caso a sugestão acima não dê certo, verifique as sugestões feitas para outro usuário com um problema semelhante neste Fórum em 2019: https://plus.diolinux.com.br/t/problema-com-o-java-aplicativos-jnpl-e-o-javaws/12585

E também forneça mais informações a respeito do problema:

  1. Distribuição e versão do sistema Linux
  2. É a primeira vez que tenta usar o assinador do TJPR nesta máquina? Caso negativo, houve alguma atualização de software entre a última vez em que o assinador funcionou com sucesso e a primeira vez em que se deparou com o erro?
  3. O arquivo *.jnpl que desencadeia o problema é o mesmo que citei acima? Caso negativo, pode fornecer o nome e site de download correto do arquivo com problema? Repita o download dele apenas para descartar que ele esteja corrompido
  4. Segundo alguns documentos do setor de TI do TJPR disponíveis online, a versão do Java compatível deve ser o Java 8 (ou superior). Para assegurar que seja realmente usada a versão 8 (sabidamente compatível com o assinador), digite o caminho completo do executável java na linha de comando OU desinstale todas as outras versões do Java e a seguir deixe apenas (exclusivamente) o Java versão 8 instalado. E inicie diretamente o aplicativo jar (baixado como descrito acima), ao invés do *.jnlp
  5. Caso seja o primeiro uso nesta máquina ou nesta versão do Linux e nenhuma das sugestões acima funcione, tente fazer a assinatura usando outra versão mais antiga / LTS (por exemplo rodando num LiveUSB ou máquina virtual ou em outro computador, caso disponível).

o arquivo é esse:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> Assinador de Arquivos Tribunal de Justica do Parana - TJPR Assinador de arquivos (PKCS#7 - CMS e PDF) do Tribunal de Justica do Parana - TJPR. Assinador de Arquivos -isAppletBehaviour -appletBehaviourConfigJSON={"stampSelection":"NENHUMA","setStampAll":false,"suppressFootNote":true,"openCertificateFileDialog":true,"appletBehaviourHashList":[{"id":"1","hash":"zwD8ZSRYfJqnLM1a0PMtOIUhG+8="}],"appletBehaviourSignatureType":"HASH","appletBehaviourCookies":[{"name":"JSESSIONID","value":"Uq-CXaoJ3cFUiIVUSpoXCo3oq1CL8cqDajnFuu7p"},{"name":"projudi-route","value":"1771460749.992.6062.225675|7bdfb9805156495edcc76f60781792d6"}],"appletBehaviourPostURL":"https://projudi.tjpr.jus.br/projudi/upload.do?_tj=d5eea4c99958a430d4350ca81176158f9a7dd4f6f27408d484124f42143e42e1c567490348fe07fe153af0aff1327cb7ba677d2ea3dd68e24982a2067ff8313fa8882b0e6e855e1dde98a8be72034a3da0d0a1cb0fc1ca0c0aa26c88427bbbd17df52fd09efb81e82c6d4c0a43be1fa4"}

Tentei salvar ele aqui como um arquivo *.jnlp abrir ele aqui com o OpenWebStart, que é um substituto do IcedTea e do Java Webstart (https://openwebstart.com/) mas também deu erro. Dá impressão que o arquivo está corrompido. Poderia tentar baixar esse arquivo novamente da fonte de onde ele veio, apenas para descartar alguma inconsistência no seu conteúdo que impeça o software assinador de funcionar?

Aliás, esse conteúdo não se parece em nada com o conteúdo de um arquivo *.jnlp, diferente do outro que baixei diretamente do TJPR, veja:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="https://portal.tjpr.jus.br/tjpr-assinador">
    <information>
        <title>Assinador de Arquivos</title>
        <vendor>Tribunal de Justica do Parana - TJPR</vendor>
        <homepage href="https://www.tjpr.jus.br"/>
        <description>Assinador de arquivos (PKCS#7 - CMS e PDF) do Tribunal de Justica do Parana - TJPR.</description>
        <description kind="short">Assinador de Arquivos</description>
        <offline-allowed/>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.8+"/>
        <jar eager="true" href="assinadorDesktop-full.jar" main="true"/>
    </resources>
    <application-desc main-class="br.jus.tjpr.assinadordesktop.AssinadorDesktopApp">
        <argument>-isAdvogado</argument>
        <argument>-appletBehaviourConfigJSON={}</argument>
    </application-desc>
</jnlp>

Note que diferentemente do outro arquivo, esse que funciona tem uma seção que começa com <jnlp e termina com </jnlp>

Uma pergunta: você está tentando assinar um documento online (no servidor) ou um documento offline (PDF baixado no dispositivo local)? Eu pergunto pois esse arquivo aí cujo conteúdo você postou parece conter um “cookie” de sessão, como se fosse parte de uma sessão de login remota…

Se possível, baixe o documento que quer assinar (em PDF), assine-o localmente com o assinador “geral” do TJPR (usando o Java 8 e o comando que listei acima) e depois faça o upload de volta, agora assinado…

Ele é assinado online. Não é assinado localmente e depois enviado. Funciona assim: eu entro no portal do TjPr chamado Projudi na area de advogado, vou até o processo e lá dentro do processo que quero protocolar um documento tem um local onde faço o upload do arquivo em pdf que quero assinar, feito isso aparece um botão embaixo “assinar” clicando no botão ele baixa esse arquivo, que quando executado com um click no pop up do donwload do navegador ele executa o assinador.

funcionando normalmente ele abre o assinador epede o pin do certificado. Mas no caso ele abre o assinador mas quando carregaria a parte onde colocaria o pin ele da erro.

O certificado esta funcionando corretamente, consigo assinar outros arquivos, o firefox reconhece ele. só da erro ao abrir esse bendito arquivo

Certo, então essa função sempre funcionou normalmente, inclusive para documentos online? É apenas para esse documento que não funciona?

exatamente. Meu certificado funciona corretamente, assino outros documentos oline sem problemas em site de outros tribunais. Inclusive para entrar (fazer login) no Projudi faço via certificado, pede o pin e entro. Só tenho problema com esse arquivo quando do protocolo de documentos

SIm, isso eu entendi bem, que seu certificado funciona e não é ele o problema.

Minha dúvida é se se trata de um problema pontual (de 1 documento específico de 1 processo de 1 tribunal - i.e. TJ-PR no Projudi) ou afeta quaisquer assinaturas de quaisquer documentos nesse mesmo tribunal (TJ-PR/Projudi). Pois em sendo apenas um documento específico, poderia recriá-lo e tentar novamente…

Não. é problema com todos os assinadores to TJPR, não consigo assinar nem um documento la dentro. e é o único tribunal que conheço que usa esse sitema de baixar um arquivo para assinatura

Sim, pelo que pesquisei online esse sistema Java Webstart (arquivos .jnlp) é obsoleto e não tem mais suporte nos ambientes Java mais atuais. Quem sabe tentando em outro computador, com Windows 10 ou mesmo Windows 7 (pode até ser numa máquina virtual se souber instalar), consiga né? Pois esse fragmento de código aí em cima não faz nenhum sentido, nem mesmo como .jnlp. Talvez mudar de browser? De Chrome para Firefox ou vice-versa?

Você viu isso

Não entendo nada. Mas na página cheguei neste link

Muito obrigado Linux-Friend, realmente me ajudou a esclarecer bastante o problema. No windonws 10 (que tenho no escritório) consigo assinar sem problemas com o Java 8. E já usei ubuntu no passo e também consegui.

O que vou fazer e tentar usar o Chrome. Volto depois dizer se deu certo