Assinando um jnlp para se livrar do Aviso de Segurança
Estou desenvolvendo em uma empresa onde um arquivo jnlp é usado para iniciar um aplicativo java baseado na web swing. Ele possui muitos jars que são baixados no cache jvm do cliente. Quando atualizei minha jvm para a versão mais recente atualmente (compilação 1.7.0_45-b18), comecei a ver o aviso de segurança abaixo quando tento executar o arquivo jnlp:
Depois que vi esse erro e li este artigo sobre como assinar arquivos jnlp no site oracle (Assinando arquivos JNLP), adicionei três coisas ao projeto:
A JNLP-INF pasta incluindo umaAPPLICATION.JNLP arquivo em todos os meus frascos, exceto os de terceiros.Assinando todos esses frascos com o certificado digital + pacote de keystore da minha própria empresaImportando o certificado digital para meus certificados Ca confiáveis de jvm via painel de controle java.Depois de fazer as alterações acima e tentar executar o arquivo jnlp após a implantação de novos jars, recebi a seguinte mensagem de aviso de segurança da jvm:
Como você pode ver, o nível de gravidade do Aviso de segurança foi alterado para um nível mais acolhedor e agora o nome do editor não é desconhecido. É o nome do certificado. Mesmo que o nível do aviso diminua, ele ainda é um aviso e não quero que meus usuários finais vejam isso sempre. Como posso resolver este problema?
Devo tentar assinar todos os frascos de terceiros também? Se sim, como posso fazer isso com um comando Ant? Como posso extrair um jar de terceiros e adicionar a pasta JNLP-INF nele e depois reembalá-lo como jar usando o Ant?Devo também assinar a finalMinha aplicação.ear com uma subpasta JNLP-INF. Este arquivo ear é implantado no servidor jboss?Devo adicionar algumas linhas extras aos meus arquivos META-INF / MANIFEST em jarros?Devo esperar que o oracle bloqueie meu aplicativo para executar na jvm com este nível de aviso?Meu arquivo JNLP é este texto:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://10.100.10.9/ikarusdelhitest/" href="ikarus.jnlp">
<information>
<title>Ikarus</title>
<vendor>My Company name</vendor>
<homepage href="http://www.mycompanyname.com" />
<description>My jnlp triggered web based enterprise software</description>
<icon href="ikarus.ico" />
<offline-allowed />
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"
java-vm-args="-Xnoclassgc -Xincgc -client -XX:DefaultMaxRAM=208M -Xms64M -Xmx256M -XX:PermSize=32M -XX:MaxPermSize=128M -XX:MinHeapFreeRatio=15 -XX:MaxHeapFreeRatio=50" />
<jar href="jars/ikarus/ikarusClient.jar" />
<jar href="jars/ikarus/ikarusDelegators.jar" />
<jar href="jars/ikarus/clientRules.jar" />
<jar href="jars/ikarus/ruleImps.jar" />
<jar href="jars/ikarus/ikarusUtil.jar" />
<jar href="jars/ikarus/ikarusResources.jar" />
<jar href="jars/ikarus/domain.jar" />
<jar href="jars/ikarus/domain_repository.jar" />
<jar href="jars/ikarus/domain_service.jar" />
<jar href="jars/ikarus/app_repository.jar" />
<jar href="jars/ikarus/app_service.jar" />
<jar href="jars/ikarus/infrastructure.jar" />
<jar href="jars/ikarus/integration_domain.jar" />
<jar href="jars/jboss_ejb_auth/ejb3-persistence.jar" />
<jar href="jars/jboss_ejb_auth/jboss-ejb3x.jar" />
<jar href="jars/jboss_ejb_auth/jbossall-client.jar" />
<jar href="jars/jasper/commons-beanutils-1.8.0.jar" />
<jar href="jars/jasper/commons-collections-3.2.1.jar" />
<jar href="jars/jasper/commons-digester-1.7.jar" />
<jar href="jars/jasper/commons-logging-1.1.jar" />
<jar href="jars/jasper/iText-2.1.0.jar" />
<jar href="jars/jasper/jasperreports-3.6.0.jar" />
<jar href="jars/jasper/poi-3.2-FINAL-20081019.jar" />
<property name="jnlp.localization" value="Delhi"/>
</resources>
<application-desc main-class="com.celebi.ikarus.main.Ikarus" />
Obrigado por qualquer ajuda / comentário / ataque cerebral.