Assinatura de jars

Bom dia,

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

Obrigado.

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]

Alguém pode me ajudar, por favor !
Obrigado

Eu assino o jar fora do NB usando essa tag:

<signjar alias="${project.key.alias}" storepass="${project.key.password}" keystore = "${project.key.keystore}" lazy="true" verbose="false" jar="${dist.dir}/${project.name}.jar" > </signjar>
Tente localizar onde você poderia adicionar esses dados.

javer, mas ai só de construir o projeto ele já assina ou eu teria que fazer esse procedimento à parte ?

obrigado por enquanto.

Você tem que localizar onde ele executa o projeto (depois de construir), a assinatura deve ser feita antes de executar o projeto.

intendi, eu tentei adicionar essa tag em build.xml no meu projeto:

<target name="-post-jar"> <signjar keypass="cateto" alias="af" jar="${dist.jar}" keystore="afKeystore" storepass="cateto"/> </target>

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

[quote=javer]Eu assino o jar fora do NB usando essa tag:

<signjar alias="${project.key.alias}" storepass="${project.key.password}" keystore = "${project.key.keystore}" lazy="true" verbose="false" jar="${dist.dir}/${project.name}.jar" > </signjar>
Tente localizar onde você poderia adicionar esses dados.[/quote]

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 :?