Applet Java - Validar certificado digital A3  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Splinter

JavaC Membro

Membro desde: 21/12/2011 11:29:49
Mensagens: 10
Offline

Pessoal,

Boa tarde!

Tenho um Sistema em php com o par usuário/senha, normal como qualquer outro sistema.

Só que preciso implementar um login com certificado digital, ou seja, na tela de login tenho que incluir um botão "Login com Certificado Digital".

Ao clicar nesse botão, o sistema tem que verificar se o usuário possui um certificado digital A3 e validá-lo. Para interagir com a leitora (SmartCard),
tenho que usar um applet java (PHP não faz) para poder fazer essa validação e entregar para o php, apenas o login do usuário (CNPJ e Email contidos no certificado digital).

Alguém sabe como fazer? Tem alguma idéia?

Desde já agradeço.

Um abraço,

Splinter.

jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1055
Localização: Bahia
Offline

Nunca fiz tal tarefa, mas acho que se você olhar a classe de assinatura do XML da NF-e você terá uma utilização do certificado A3, sendo que lá estará parametrizado o usuário e senha que no seu caso você irá obter e passar como parâmetro.

Tem alguns tópicos aqui também eu falam sobre Applet para envio da NF-e, com estes tópicos acho que você já consegue evoluir muito.

Caso tenha dificuldades volta a postar...

Jeremias Santos
Seguir no Twitter @jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
Splinter

JavaC Membro

Membro desde: 21/12/2011 11:29:49
Mensagens: 10
Offline

Boa tarde, Jeremias!

Cara, agradeço pela sua resposta.

Analisando alguns exemplos da Nfe e juntando com outros que encontrei na net, consegui montar um esboço de uma applet java para acessar o smartcard.

Mas surgiu uma outra dúvida, se o usuário informar o PIN errado por mais de 3 vezes, o certificado será bloqueado.

Então, no meu applet preciso informar ao usuário a quantidade de tentativas que ainda resta. Dúvida: tem alguma
função que retorne essa quantidade de tentativas restantes?

Segue abaixo o código do applet:



Agradeço a atenção.

Um abraço,

Splinter
Ramon Pires

JavaC Membro

Membro desde: 13/04/2012 08:19:41
Mensagens: 49
Offline

Eu não sei se na api do java é fornecido um método que armazene algum meio para se saber quantas vezes foi tentando usar com o PIN errado. Mas na minha opinião você poderia simplesmente criar um contador na sua aplicação,caso não encontre uma solução melhor.
Splinter

JavaC Membro

Membro desde: 21/12/2011 11:29:49
Mensagens: 10
Offline


Ramon,

Não há como controlar na aplicação, pois se o usuário errar uma vez e fechar o browser.

Ao acessar novamente, essa tentativa errada já está contando. Pelo que vi, o contador de
tentativas erradas somente ZERA quando é informada um senha correta, ou seja, o controle
é feito no smartcard mesmo!

Splinter
Splinter

JavaC Membro

Membro desde: 21/12/2011 11:29:49
Mensagens: 10
Offline

Pessoal,

Bom dia!

Alguém tem alguma sugestão para essa questão?

Agradeço a atenção.

Um Abraço,

Splinter.
jeroqueiroz

Moderador
[Avatar]

Membro desde: 11/06/2011 09:45:18
Mensagens: 1055
Localização: Bahia
Offline

Não sei informar como seria, mas creio que tenha algo, porém não sei também se armazenária esta informação após um tempo...

Os bancos após um tempo, mesmo tendo errado duas vezes ele irá liberar novamente para mais três tentativas, porém como você já citou que ele armazena e somente irá zerar quando houver uma tentativa com exito. Logo vejo somente a forma de armazenar no banco Usuário + tentativas erradas, zerando sempre que ocorrer uma certe e sempre verificar as tentativas já existentes antes de enviar uma nova requisição. caso não esteja trabalhando com Banco, seria trabalhar com arquivos físicos.

A solução citada é uma solução, apesar de não ser nada elegante, mas vai funcionar e você poderá ter mais tempo para pesquisar com calma sobre a possível funcionalidade.

Jeremias Santos
Seguir no Twitter @jeroqueiroz


Projeto NF-e, CT-e, CC-e? Comece Por Aqui!


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   

Powered by JForum 2.1.9 © JForum Team