galera to com um problemão aqui… preciso assinar 26 arquivos da pasta lib do meu projeto. Por linha de comando eu ate consigo, mas por questões de praticidade e economia de tempo, ao atualizar o projeto eu já tento assinar pelo NetBeans 6.7.1 e é ai que a coisa complica… Dos 26 jars ele assina apenas 22, LOGO, ao executar via web start surge o erro: Os jars não foram assinados com o mesmo certificados
Os 4 jars recebem outrou tipo de assinatura, assim eu fico com 2 certificados diferentes 0o
Preciso mesmo é assinar todos pelo NetBeans, mas não sei o que esta acontecendo
Dei uma pesquisada aqui, e acho q tem q modificar as tags em jnlp-impl.xml para “FORÇAR” o NetBeans assinar determinado jar… mas não sei onde modificar exatamente…
[code]
<target name="-security-props-check">
<condition property="jnlp.signed.true">
<istrue value="${jnlp.signed}"/>
</condition>
</target>
<target name="-jnlp-init-keystore" depends="-jnlp-init-keystore-props,-check-keystore-exists" unless="jnlp.signjar.keystore.exists">
<echo message="${application.vendor}" file="${helper.file}"/>
<loadfile property="application.vendor.filtered" srcfile="${helper.file}">
<filterchain>
<deletecharacters chars=","/>
</filterchain>
</loadfile>
<delete file="${helper.file}"/>
<property name="jnlp.signjar.vendor" value="CN=${application.vendor.filtered}"/>
<echo message="Going to create default keystore in ${jnlp.signjar.keystore}"/>
<genkey dname="${jnlp.signjar.vendor}" alias="${jnlp.signjar.alias}" keystore="${jnlp.signjar.keystore}"
storepass="${jnlp.signjar.storepass}" keypass="${jnlp.signjar.keypass}"/>
</target>
<target name="-check-keystore-exists">
<available property="jnlp.signjar.keystore.exists" file="${jnlp.signjar.keystore}"/>
</target>
<target name="-jnlp-init-keystore-props">
<property name="jnlp.signjar.keystore" value="${basedir}/build/roberto.ks"/>
<property name="jnlp.signjar.storepass" value="cateto"/>
<property name="jnlp.signjar.keypass" value="cateto"/>
<property name="jnlp.signjar.alias" value="roberto"/>
</target>
<!-- Signing -->
<target name="-test-signjars-task-available">
<available property="signjars.task.available"
classname="org.netbeans.modules.javawebstart.anttasks.SignJarsTask"
classpath="${libs.JWSAntTasks.classpath}"/>
</target>
<target name="-check-signing-possible" depends="-security-props-check,-test-signjars-task-available,-unavailable-signjars-task">
<condition property="jnlp.signed.true+signjars.task.available">
<and>
<isset property="jnlp.signed.true"/>
<isset property="signjars.task.available"/>
</and>
</condition>
</target>
<target name="-unavailable-signjars-task" depends="-test-signjars-task-available" unless="signjars.task.available">
<echo message="Task required to sign JAR file is missing, probably the library 'JWS Ant Tasks' is missing either from shared folder or from IDE installation. JAR files will not be signed."/>
</target>
<target name="sign-jars" depends="-jnlp-init-keystore,-check-signing-possible" if="jnlp.signed.true+signjars.task.available">
<taskdef name="sign-jars" classname="org.netbeans.modules.javawebstart.anttasks.SignJarsTask"
classpath="${libs.JWSAntTasks.classpath}"/>
<sign-jars keystore="${jnlp.signjar.keystore}" storepass="${jnlp.signjar.storepass}"
keypass="${jnlp.signjar.keypass}" alias="${jnlp.signjar.alias}" mainjar="${dist.jar}" destdir="dist"
codebase="${jnlp.codebase.value}" signedjarsprop="jnlp.signed.jars"
componentsprop="jnlp.components">
<fileset dir="dist/lib">
<include name="*.jar"/>
</fileset>
</sign-jars>
</target>[/code]
e assim, ao construir o projeto no NB as biblitecas ele não assina
Na verdade, eu sempre assinei os jars quando eu configurava para WebStart mas agora ele simplesmente “ignora” 3 bibliotecas e gera o erro: os jars devem ser assinados pelo mesmo certificado… Nessas 3 bibliotecas, em META-INF existe dois arquivos SUN-MICR.DSA e SUN-MICR.SF, enquanto todas as outras tem ROBERTO.DSA e ROBERTO.SF
Onde você coloca exatamente essa tag… ?
tentei muito aqui mas até agora nada =/
e o curioso é que quando contruo o projeto no nb, ele gera DOIS arquivos jnlp (launch.jnlp e jnlpcomponent1.jnlp). E no arquivo jnlpcomponent.jnlp ele declara JUSTAMENTE os jars que ele não consegue assinar :?