Recompilei minhas aulas como de costume e de repente recebi a seguinte mensagem de erro. Por quê? Como posso corrigir isso?
java.lang.SecurityException: class "Chinese_English_Dictionary"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:776)
Uma maneira simples de contornar isso é apenas tentar alterar a ordem dos arquivos jar importados, o que pode ser feito no (Eclipse). Clique com o botão direito do mouse no seu pacote -> Caminho da Construção -> Configurar Caminho da Construção -> Referências e Bibliotecas -> Solicitar e Exportar. Tente alterar a ordem dos jarros que contêm arquivos de assinatura.
fonte
R. Se você usa o maven, uma maneira útil de depurar frascos colidindo é:
Por exemplo, para uma exceção:
nós fazemos:
Sua saída:
mostra servlet-api 2.5 em conflito e javax.servlet 3.0.0.x.
B. Outras dicas úteis (como depurar a exceção de segurança e como excluir os deuses) estão na pergunta em Informações do Signatário não coincidem .
fonte
No meu caso, eu havia duplicado a versão JAR do BouncyCastle no caminho da minha biblioteca: S
fonte
Eu tive uma exceção semelhante:
O principal problema foi que eu incluí a biblioteca Hamcrest duas vezes. Uma vez usando o arquivo pom Maven. Também adicionei a biblioteca JUnit 4 (que também contém uma biblioteca Hamcrest) ao caminho de construção do projeto. Eu simplesmente tive que remover o JUnit do caminho da compilação e tudo estava bem.
fonte
Isso pode ocorrer com os proxies instrumentados por cglib porque o CGLIB usa suas próprias informações de assinante em vez das informações de assinante da classe de destino do aplicativo.
fonte
Nome: net / sf / jasperreports / engine / util / xml / JaxenXPathExecuterFactory.c, classe SHA-256-Digest: q3B5wW + hLX / + lP2 + L0 / 6wRVXRHq1mISBo1dkixT6Vxc =
fonte
Se você estiver executando no Eclipse, verifique os jars de qualquer projeto adicionado ao caminho de construção; ou controle-shift-T e verifique se há vários frascos correspondentes ao mesmo espaço para nome. Em seguida, remova os jarros redundantes ou desatualizados do caminho de construção do projeto.
fonte
Estou tendo esse problema com o Eclipse e o JUnit 5. Minha solução é inspirada na resposta anterior do usuário2066936 É para reconfigurar a ordem das bibliotecas de importação:
fonte
No meu caso, foi um conflito de nome de pacote. O projeto atual e a biblioteca referenciada assinada tinham um pacote em comum
package.foo.utils
. Apenas alterei o nome do pacote propenso a erros do projeto atual para outra coisa.fonte
Um tópico muito antigo, mas desde que fiquei preso por algum tempo nisso, aqui está a correção (espero que ajude alguém)
Meu cenário:
O nome do pacote é: com.abc.def. Existem 2 arquivos jar que contêm classes deste pacote, como jar1 e jar2, ou seja, algumas classes estão presentes no jar1 e outras no jar2. Esses arquivos jar são assinados usando o mesmo keystore, mas em momentos diferentes na compilação (ou seja, separadamente). Isso parece resultar em uma assinatura diferente para os arquivos em jar1 e jar2.
Coloquei todos os arquivos no jar1 e os construí (e assinei) juntos. O problema desaparece.
PS: Os nomes dos pacotes e dos arquivos jar são apenas exemplos
fonte
Se você adicionou todos os jars do bouncycastle.org (no meu caso, do crypto-159.zip), remova os dos JDKs que não se aplicam a você. Existem despedimentos. Você provavelmente só precisa dos frascos "jdk15on".
fonte
Essa pergunta durou muito tempo, mas eu quero discutir alguma coisa. Eu tenho trabalhado em um desafio do projeto Spring e descobri isso no Eclipse IDE. Se você estiver usando as APIs Maven ou Gradle para Spring Boot Rest, precisará remover o Junit 4 ou 5 no caminho da construção e incluir o Junit no seu arquivo de construção pom.xml ou Gradle. Eu acho que isso se aplica ao arquivo de configuração yml também.
fonte
Isso também acontece se você incluir um arquivo com nomes diferentes ou de locais diferentes duas vezes, especialmente se houver duas versões diferentes do mesmo arquivo.
fonte
Eu poderia consertar isso.
Causa raiz: Esse é um problema comum ao usar a implementação Sun JAXB com jars assinados. Essencialmente, a implementação do JAXB está tentando evitar a reflexão gerando uma classe para acessar diretamente as propriedades sem usar a reflexão. Infelizmente, ele gera essa nova classe no mesmo pacote que a classe que está sendo acessada e é daí que vem esse erro.
Resolução: inclua a seguinte propriedade do sistema para desativar as otimizações JAXB que não são compatíveis com os jars assinados: -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize = true
Ref: https://access.redhat.com/site/solutions/42149
fonte
Com base na resposta do @Mohit Phougat, se você estiver executando um Groovy com anotações do @Grab, poderá tentar reordenar essas anotações.
fonte
isso aconteceu comigo ao usar JUnit + tenha certeza + hamcrest, neste caso, não adicione junit para criar o caminho, se você tiver o projeto maven, isso me resolveu, abaixo está o pom.xml
fonte
Eu estava executando o JUNIT 5 e também estava fazendo referência ao jar externo Hamcrest. Mas Hamcrest também faz parte da biblioteca JUNIT 5 . Portanto, eu tenho que alterar a ordem do arquivo jar externo Hamecrest na biblioteca JUNIT 5 no caminho de construção.
fonte