| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2006 13:39:24
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Boa tarde,
Tô com um problema q até então não resolvi, talvez alguém possa ajudar.
Seguinte, preciso q meu programa de "Assinatura Digital" liste os tokens da máquina numa de suas telas. Isso ele já faz, porém quando é retirado um token e colocado outro, essa tela nao se atualiza. Entao, é necessário fechar o programa e abrir denovo pra q a lista de tokens seja atualizada. Nem se fechar a tela e abrir denovo essa atualizaçao ocorre.
Isso acontece, suponho, por q o Cryptomanager, do pacote org.mozilla.jss, nao "finaliza sua instancia" e cria uma nova.
Minha pergunta é: Como faço pra "desinstanciar" o objeto do tipo Cryptomanager e criar uma nova instancia sem precisar fechar o programa?
Pode ser quando se fecha a sub-tela e abre outra ou mesmo quando se clica em um botao atualizar.
Desde já agradeço à atenção de todos.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2006 13:45:49
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Acho que você vai ter de submeter sua dúvida à lista de desenvolvimento do Mozilla - news://news.mozilla.org:119/mozilla.dev.tech.crypto
Você pode até tentar ler o código-fonte do Mozilla, mas o código do NSS é incrivelmente complexo, como você já deve saber.
Outra coisa: pode ser que o fabricante do seu token não tenha implementado corretamente a função do PKCS#11 que indica a remoção do token.
Se isso não for feito corretamente, você terá problemas na atualização dessa lista.
Veja se não é esse o problema (ou seja, se você tiver algum outro token de outra marca, talvez o status seja corretamente atualizado).
Estou chutando isso, porque pode ser que o seu problema não seja do Mozilla NSS e sim do driver do fabricante. (Coisas acontecem)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2006 14:28:39
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Entendi, entao quer dizer q por si só o Cryptomanager deveria atualizar está lista sem precisar ser reinicializado?
Não existe uma forma de eu colocar uma ação q "simule" o efeito de fechar e abrir o programa denovo não?
Fechar e abrir no contexto da instancia do objeto cryptomanager.
Pq o drive do token acho q nao é, ao menos na versao do nosso programa q roda no windows usando a CAPICOM ele funciona belezinha.
Lá no news do mozilla eles ja tao doidos pra me matar ehhehe! Vou criar outra conta pra perguntar isso ^^
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2006 14:33:23
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
TiagoFoil wrote:
Pq o drive do token acho q nao é, ao menos na versao do nosso programa q roda no windows usando a CAPICOM ele funciona belezinha.
Não suponha isso. Muitas vezes o pessoal capricha no driver para MS CryptoAPI e deixa a desejar no driver para PKCS#11. (São drivers diferentes; às vezes são feitos até por empresas diferentes! )
Veja em algum fórum que fale de tokens desse fabricante se não há alguma coisa estranha com o driver.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2006 15:47:45
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Ok, irei procurar mais sobre isso...
Mas, suponhamos q haja realmente um problema com este driver. Uma alternativa seria desinstaciar o cryptomanager e instancia-lo denovo, assim, simulando o ato de fechar e abrir o programa. Já andei lendo o código do Cryptomanager e percebi q ele é um singleton que, quando já existe uma instancia, ao invés dele retornar a instancia ja criada ele lança uma excessao.
Vc tem alguma outra idéia?
Algo q poderia ser feito em outro objeto qualquer sei lá, tipo chamar o "Garbage Collector" e mandar limpar a referencia dela sei lá.. Com certeza devo ta falando bobagem mas, nunca é tarde pra se aprender sobre coisas básicas de Java ehhehe.
|
|
|
 |
|
|