Mudanças entre as edições de "PJeOffice"
(→Configurando solicitação de senha de acesso) |
(→Observações) |
||
Linha 130: | Linha 130: | ||
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração. | Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração. | ||
+ | |||
+ | == Suporte == | ||
+ | |||
+ | Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353. | ||
+ | |||
+ | == Tópico voltado para os Desenvolvedores == | ||
+ | |||
+ | Para realizar uma requisição ao PJeOffice a aplicação cliente devera realizar uma requisição http ao servidor web do PJeOffice | ||
+ | que estará disponível no endereço "http://localhost:8800/pjeOffice/tarefa/" | ||
+ | nesta requisição poderá ser enviado informações ao aplicativo através do método GET do protocolo HTTP. | ||
+ | |||
+ | Para solicitar a execução de tarefas no PJeOffice foi criado um protocolo de comunicação entre o PJeOffice e as aplicações clientes. | ||
+ | O protocolo define que as solicitações dos clientes serão descritas através de um objeto JSON que será enviado através do parâmetro de nome "r" | ||
+ | na requisição http do cliente. | ||
+ | |||
+ | O resultado da requisição ao PJeOffice sempre ira retornar uma imagem de 1px de largura nos casos em que a requisição | ||
+ | foi executada com sucesso e de 2px de largura nos casos de erro. | ||
+ | |||
+ | Portanto o aplicativo cliente do PJeOffice devera realizar a solicitação utilizando o seguinte código: | ||
+ | |||
+ | var image = new Image(); | ||
+ | image.onload = function() { <font color="#32CD32"> // Função que será executada se houver sucesso ou erro!!!</font> }; | ||
+ | image.onerror = function() { <font color="#32CD32"> // Função que será executada se o aplicativo estiver indisponível!!!</font> }; | ||
+ | image.src = <font color="#006400">"http://localhost:8800/pjeOffice/requisicao/?t={ JSON com a requisição da tarefa que o PJeOffice devera executar}&u=12345678";</font>} | ||
+ | |||
+ | O json que será enviado ao PJeOffice devera possuir a seguinte estrutura: | ||
+ | |||
+ | { | ||
+ | aplicacao : <font color="#006400">'PJe'</font>, <font color="#32CD32">// Nome da aplicação cliente </font> | ||
+ | servidor : <font color="#006400">'http://www.cnj.jus.br/pje'</font>, <font color="#32CD32">// Endereço da aplicação cliente </font> | ||
+ | sessao : <font color="#006400">'JSESSIONID=98FEEE5F38B9DCF0504CC67417CE6A9C'</font>, <font color="#32CD32">// Os dados da sessão do usuário que serão utilizados pelo<br> PJeOffice para enviar os dados do resultado da tarefa ao servidor da aplicação cliente </font> | ||
+ | codigoSeguranca : <font color="#006400">'nZlJkluvyqJ1V9RfRCDXa1UnLPpYFkJAYqnH8GA ...'</font>, <font color="#32CD32">// O código de segurança que será gerado pelo CNJ para autorizar a<br> utilização do PJeOffice </font> | ||
+ | tarefaId : <font color="#006400">'br.jus.cnj.pje.office.tarefa.AssinadorHash'</font> <font color="#32CD32">// O identificador da tarefa que será executada </font> | ||
+ | tarefa : <font color="#006400"> { ... }</font> <font color="#32CD32">// JSON da tarefa que será executada </font> | ||
+ | } | ||
+ | |||
+ | === Criando uma nova tarefa === | ||
+ | |||
+ | Para estender as funcionalidades do PJeOffice será necessário criar uma nova tarefa. | ||
+ | |||
+ | Durante o desenvolvimento do PJeOffice observou-se que o aplicativo tornava possível o desenvolvimento de uma grande quantidade de novas funcionalidades. | ||
+ | Portanto sua arquitetura base foi planejada para facilitar este crescimento de novas funcionalidades foi criada uma estrutura para que cada funcionalidade (tarefa) | ||
+ | fosse adicionada como um plugin do sistema. | ||
+ | |||
+ | Para criar um novo plugin do PJeOffice o desenvolvedor devera criar o projeto seguindo a estrutura definida pelo PJeOffice | ||
+ | que determina a criação de arquivos de configurações e classes obrigatórias. | ||
+ | |||
+ | Demonstraremos esta estrutura utilizando a criação de um plugin chamado de Teste como exemplo: | ||
+ | |||
+ | ==== Classes ==== | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! colspan="1" style="width: 180px;" |Modelo | ||
+ | ! colspan="1" style="width: 180px;" |Exemplo | ||
+ | ! colspan="1" style="width: 700px;" |Descrição | ||
+ | |- | ||
+ | | '''Tarefa{NomeDaTarefa}.java''' | ||
+ | |TarefaTeste.java | ||
+ | |Classe que representa os parâmetros que será enviados na requisição, será utilizada para realizar o parse do json | ||
+ | |- | ||
+ | |'''Tarefa{NomeDaTarefa}Manager.java''' | ||
+ | |TarefaTesteManager.java | ||
+ | |Classe que representa as regras de negócios envolvidas na execução desta tarefa | ||
+ | |- | ||
+ | |'''Tarefa{NomeDaTarefa}Executor.java''' | ||
+ | |TarefaTesteExecutor.java | ||
+ | |Classe utilizada para mapear as dependências envolvidas na execução de um tipo de tarefa. | ||
+ | |} | ||
+ | |||
+ | ==== Arquivos de configuração ==== | ||
+ | |||
+ | '"/src/main/resources/META-INF/services/br.jus.cnj.pje.office.spi.PJeOfficePlugin" | ||
+ | |||
+ | Este arquivo devera ser criado dentro desta estrutura de diretório, esta estrutura foi definida através da conversão SPI do java. | ||
+ | |||
+ | O conteúdo deste arquivo devera ser o FQN (Fully qualified name, o nome completo da classe, pacote + nome da classe) da classe do projeto que implementa a interface PJeOfficePlugin | ||
+ | |||
+ | Esta interface obrigara o desenvolvedor informar quais saos as classes Executoras de Tarefa que o plugin criou. | ||
+ | |||
+ | ==== Metodologias de comunicação ==== | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! colspan="1" style="width: 180px;" |Definir | ||
+ | ! colspan="1" style="width: 300px;" |Vantagens | ||
+ | ! colspan="1" style="width: 636px;" |Desvantagens | ||
+ | |- | ||
+ | | '''CORS''' | ||
+ | |Controle da requisicao e bom ( Error e Sucesso ) | ||
+ | |Suporte aos browser antigos e fraco e request ajax de origem https não funciona para outro servidor com self signed certificate somente se o usuário registrar a autorização. | ||
+ | |- | ||
+ | |'''JSONP''' | ||
+ | |Suporte aos browser antigos. | ||
+ | |Controle da requisição e ruim (Somente sucesso). | ||
+ | |- | ||
+ | |'''IMAGE''' | ||
+ | |Suporte aos browsers antigos, Controle da requisição e bom (Erro e Sucesso). | ||
+ | |Não retorna dados somente imagem. | ||
+ | |} | ||
+ | |||
+ | ==== Serviços ==== | ||
+ | |||
+ | /pjeOffice/ - Retorna uma imagem - Utilizado para testar a disponibilidade | ||
+ | /pjeOffice/versao/ - Retorna um json com a versao do PJeOffice instalada | ||
+ | /pjeOffice/requisicao/ - Retorna uma imagem de um 1px de largura nos casos de sucesso e 2px de largura nos casos de erro. | ||
+ | |||
+ | ==== Processo de atualização ==== | ||
+ | |||
+ | pjeOffice.jar ou pjeOffice.exe (Windows) | ||
+ | - Verifica se existe uma nova versao do sistema | ||
+ | - Se existir baixa o arquivo zip da nova versao | ||
+ | - Verifica se o arquivo esta integro | ||
+ | - Descomprime o arquivo zipado no diretorio temporario | ||
+ | - Exclui o JAR pjeOfficeAtualizador.jar do diretorio da aplicacao | ||
+ | - Move o JAR pjeOfficeAtualizador.jar do diretorio da nova versao para o diretorio da aplicacao | ||
+ | - Executa o JAR pjeOfficeAtualizador.jar com os parametros '"$dirAplicacao" "$dirNovaVersao" | ||
+ | - Finaliza a execucao do pjeOffice.jar | ||
+ | |||
+ | pjeOfficeAtualizador.jar | ||
+ | - Executa um loop para todos os arquivos encontrados no diretorio da nova versao | ||
+ | - Verifica se existe um arquivo correspondente no diretorio da aplicacao | ||
+ | - Se existir excluir o arquivo correspondente do diretorio da aplicacao | ||
+ | - Copia o arquivo do diretorio da nova versao para o diretorio da aplicacao | ||
+ | - Exclui o arquivo do diretorio da nova versao | ||
+ | - Executa o JAR pjeOffice.jar ou pjeOffice.exe (Windows) | ||
+ | - Finaliza a execucao do JAR pjeOfficeAtualizador.jar | ||
+ | |||
+ | ==== Guia para gerar um certificado p12 utilizado para gerar o codigoSeguranca do PJeOffice ==== | ||
+ | |||
+ | -- Gerar as chaves publica e privada | ||
+ | openssl genrsa -out ca.key 2048 | ||
+ | |||
+ | -- Gerar o certificado | ||
+ | openssl req -new -key ca.key -out ca.crt | ||
+ | |||
+ | -- Gerar o certificado x509 seflsigned | ||
+ | openssl x509 -req -days 3650 -in ca.crt -signkey ca.key -out ca.crt | ||
+ | |||
+ | -- Exportar o certificado para p12 | ||
+ | openssl pkcs12 -export -out ca.p12 -inkey ca.key -in ca.crt | ||
+ | |||
+ | ==== Modo desenvolvedor ==== | ||
+ | |||
+ | Para habilitar e desabilitar o modo desenvolvedor o desenvolvedor devera; | ||
+ | |||
+ | - Clicar com o botão; direito no icone do PJeOffice no SystemTray; | ||
+ | - Clicar no item de menu Sistema; | ||
+ | - No dialogo Sistema, clique 5 vezes no numero da versao do PJeOffice; | ||
== Suporte == | == Suporte == | ||
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353. | Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353. |
Edição das 12h22min de 15 de agosto de 2016
O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.
Aplicativo PJeOffice para instalação
Selecione o arquivo para download do seu sistema operacional.
Sistema Operacional | Download | ||
---|---|---|---|
Servidor 1 | Servidor 2 | ||
Windows | pje-office.zip | Link alternativo | |
MacOS 64 Bits | pje-office_x64.dmg | Link alternativo | |
Debian 32 bits | pje-office_i386.deb | Link alternativo | |
Debian 64 bits | pje-office_amd64.deb | Link alternativo |
Aplicativos para download PJeOffice
Para iniciar o Download do programa, siga os passos abaixo:
Passo 1: Clique no arquivo de download acima conforme seu sistema operacional.
Passo 2: Aguarde o download terminar.
Passo 3: Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".
Passo 4: Depois de finalizada a operação clique duas vezes no instalador.
Passo 5: Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.
Passo 6: Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".
Configuração modo simples (somente windows)
Passo 1: Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"
Passo 2: Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.
Passo 3: Selecione o certificado desejado e depois clique em "Concluir".
Configuração modo avançado
Passo 1: Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).
Passo 2: Clique no item de menu "Configuração de Certificado"
Passo 3: O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"
Passo 4: Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"
Passo 5: Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.
Configurando solicitação de senha do certificado
Passo 1: Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).
Passo 2: Clique no item de menu "Configuração de Certificado"
Passo 3: O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções:
- Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente.
- Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.
- Sempre: a senha do PIN sempre será solicitada.
Passo 4: Selecione o modo desejado e clique no botão "Concluir"
Assinando arquivos fora do sistema em modo (OFFLINE)
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente.
Para realizar a assinatura offline, siga os passos abaixo:
Passo 1: Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).
Passo 2: Clique no item de menu "Assinador off-line"
Passo 3: O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho.
Selecione os arquivos que deseja assinar e clique no botão "Abrir"
Passo 4: O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline.
Selecione o local de destino e clique no botão "Abrir"
Passo 5: Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.
Observações
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.
Suporte
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.
Tópico voltado para os Desenvolvedores
Para realizar uma requisição ao PJeOffice a aplicação cliente devera realizar uma requisição http ao servidor web do PJeOffice que estará disponível no endereço "http://localhost:8800/pjeOffice/tarefa/" nesta requisição poderá ser enviado informações ao aplicativo através do método GET do protocolo HTTP.
Para solicitar a execução de tarefas no PJeOffice foi criado um protocolo de comunicação entre o PJeOffice e as aplicações clientes. O protocolo define que as solicitações dos clientes serão descritas através de um objeto JSON que será enviado através do parâmetro de nome "r" na requisição http do cliente.
O resultado da requisição ao PJeOffice sempre ira retornar uma imagem de 1px de largura nos casos em que a requisição foi executada com sucesso e de 2px de largura nos casos de erro.
Portanto o aplicativo cliente do PJeOffice devera realizar a solicitação utilizando o seguinte código:
var image = new Image(); image.onload = function() { // Função que será executada se houver sucesso ou erro!!! }; image.onerror = function() { // Função que será executada se o aplicativo estiver indisponível!!! }; image.src = "http://localhost:8800/pjeOffice/requisicao/?t={ JSON com a requisição da tarefa que o PJeOffice devera executar}&u=12345678";}
O json que será enviado ao PJeOffice devera possuir a seguinte estrutura:
{ aplicacao : 'PJe', // Nome da aplicação cliente servidor : 'http://www.cnj.jus.br/pje', // Endereço da aplicação cliente sessao : 'JSESSIONID=98FEEE5F38B9DCF0504CC67417CE6A9C', // Os dados da sessão do usuário que serão utilizados pelo
PJeOffice para enviar os dados do resultado da tarefa ao servidor da aplicação cliente codigoSeguranca : 'nZlJkluvyqJ1V9RfRCDXa1UnLPpYFkJAYqnH8GA ...', // O código de segurança que será gerado pelo CNJ para autorizar a
utilização do PJeOffice tarefaId : 'br.jus.cnj.pje.office.tarefa.AssinadorHash' // O identificador da tarefa que será executada tarefa : { ... } // JSON da tarefa que será executada }
Criando uma nova tarefa
Para estender as funcionalidades do PJeOffice será necessário criar uma nova tarefa.
Durante o desenvolvimento do PJeOffice observou-se que o aplicativo tornava possível o desenvolvimento de uma grande quantidade de novas funcionalidades. Portanto sua arquitetura base foi planejada para facilitar este crescimento de novas funcionalidades foi criada uma estrutura para que cada funcionalidade (tarefa) fosse adicionada como um plugin do sistema.
Para criar um novo plugin do PJeOffice o desenvolvedor devera criar o projeto seguindo a estrutura definida pelo PJeOffice que determina a criação de arquivos de configurações e classes obrigatórias.
Demonstraremos esta estrutura utilizando a criação de um plugin chamado de Teste como exemplo:
Classes
Modelo | Exemplo | Descrição |
---|---|---|
Tarefa{NomeDaTarefa}.java | TarefaTeste.java | Classe que representa os parâmetros que será enviados na requisição, será utilizada para realizar o parse do json |
Tarefa{NomeDaTarefa}Manager.java | TarefaTesteManager.java | Classe que representa as regras de negócios envolvidas na execução desta tarefa |
Tarefa{NomeDaTarefa}Executor.java | TarefaTesteExecutor.java | Classe utilizada para mapear as dependências envolvidas na execução de um tipo de tarefa. |
Arquivos de configuração
'"/src/main/resources/META-INF/services/br.jus.cnj.pje.office.spi.PJeOfficePlugin"
Este arquivo devera ser criado dentro desta estrutura de diretório, esta estrutura foi definida através da conversão SPI do java.
O conteúdo deste arquivo devera ser o FQN (Fully qualified name, o nome completo da classe, pacote + nome da classe) da classe do projeto que implementa a interface PJeOfficePlugin
Esta interface obrigara o desenvolvedor informar quais saos as classes Executoras de Tarefa que o plugin criou.
Metodologias de comunicação
Definir | Vantagens | Desvantagens |
---|---|---|
CORS | Controle da requisicao e bom ( Error e Sucesso ) | Suporte aos browser antigos e fraco e request ajax de origem https não funciona para outro servidor com self signed certificate somente se o usuário registrar a autorização. |
JSONP | Suporte aos browser antigos. | Controle da requisição e ruim (Somente sucesso). |
IMAGE | Suporte aos browsers antigos, Controle da requisição e bom (Erro e Sucesso). | Não retorna dados somente imagem. |
Serviços
/pjeOffice/ - Retorna uma imagem - Utilizado para testar a disponibilidade /pjeOffice/versao/ - Retorna um json com a versao do PJeOffice instalada /pjeOffice/requisicao/ - Retorna uma imagem de um 1px de largura nos casos de sucesso e 2px de largura nos casos de erro.
Processo de atualização
pjeOffice.jar ou pjeOffice.exe (Windows) - Verifica se existe uma nova versao do sistema - Se existir baixa o arquivo zip da nova versao - Verifica se o arquivo esta integro - Descomprime o arquivo zipado no diretorio temporario - Exclui o JAR pjeOfficeAtualizador.jar do diretorio da aplicacao - Move o JAR pjeOfficeAtualizador.jar do diretorio da nova versao para o diretorio da aplicacao - Executa o JAR pjeOfficeAtualizador.jar com os parametros '"$dirAplicacao" "$dirNovaVersao" - Finaliza a execucao do pjeOffice.jar
pjeOfficeAtualizador.jar - Executa um loop para todos os arquivos encontrados no diretorio da nova versao - Verifica se existe um arquivo correspondente no diretorio da aplicacao - Se existir excluir o arquivo correspondente do diretorio da aplicacao - Copia o arquivo do diretorio da nova versao para o diretorio da aplicacao - Exclui o arquivo do diretorio da nova versao - Executa o JAR pjeOffice.jar ou pjeOffice.exe (Windows) - Finaliza a execucao do JAR pjeOfficeAtualizador.jar
Guia para gerar um certificado p12 utilizado para gerar o codigoSeguranca do PJeOffice
-- Gerar as chaves publica e privada openssl genrsa -out ca.key 2048
-- Gerar o certificado openssl req -new -key ca.key -out ca.crt
-- Gerar o certificado x509 seflsigned openssl x509 -req -days 3650 -in ca.crt -signkey ca.key -out ca.crt
-- Exportar o certificado para p12 openssl pkcs12 -export -out ca.p12 -inkey ca.key -in ca.crt
Modo desenvolvedor
Para habilitar e desabilitar o modo desenvolvedor o desenvolvedor devera;
- Clicar com o botão; direito no icone do PJeOffice no SystemTray; - Clicar no item de menu Sistema; - No dialogo Sistema, clique 5 vezes no numero da versao do PJeOffice;
Suporte
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.