Revision: 20321
          http://sourceforge.net/p/gate/code/20321
Author:   ian_roberts
Date:     2018-11-23 12:23:04 +0000 (Fri, 23 Nov 2018)
Log Message:
-----------
Added support for timestamped JAR signatures and signing keys in a PKCS12 
keystore.  Also removed the special handling for mail and activation jars - we 
now strip the Sun signatures and add our own, so the whole app is under the 
same "publisher" and therefore there's only one security warning rather than 
two each time you start it.

Modified Paths:
--------------
    teamware/trunk/annic-gui/build.xml
    teamware/trunk/annotation-diff-gui/build.xml
    teamware/trunk/annotator-gui/build.xml
    teamware/trunk/executive/web/pages/annicGUIInvoker.jsp
    teamware/trunk/executive/web/pages/annotationDiffJnlpInvoker.jsp
    teamware/trunk/executive/web/pages/jnlpInvoker.jsp

Modified: teamware/trunk/annic-gui/build.xml
===================================================================
--- teamware/trunk/annic-gui/build.xml  2018-11-19 15:44:16 UTC (rev 20320)
+++ teamware/trunk/annic-gui/build.xml  2018-11-23 12:23:04 UTC (rev 20321)
@@ -21,6 +21,7 @@
   <property name="buildDir" value="build" />
   <property name="unsignedDir" location="${jws-guis.dir}/unsigned" />
   <property name="keystore" location="${jws-guis.dir}/resources/keystore" />
+  <property name="keystoreType" value="jks" />
   <property name="storepass" value="storepass" />
   <property name="keypass" value="keypass" />
   <property name="alias" value="GATE" />
@@ -79,9 +80,31 @@
     <delete file="${annicgui.jar.location}" />
   </target>
 
+  <target name="signtask-no-ts" unless="signjar.timestampUrl">
+    <macrodef name="tw-sign">
+      <attribute name="jar" />
+      <sequential>
+        <signjar jar="@{jar}" alias="${alias}" keystore="${keystore}" 
storetype="${keystoreType}" storepass="${storepass}" keypass="${keypass}" />
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="signtask-with-ts" if="signjar.timestampUrl">
+    <macrodef name="tw-sign">
+      <attribute name="jar" />
+      <sequential>
+        <signjar jar="@{jar}" alias="${alias}" keystore="${keystore}" 
storetype="${keystoreType}" storepass="${storepass}" keypass="${keypass}" 
tsaurl="${signjar.timestampUrl}" />
+        <!-- sleep so we don't hit the timestamp server rate limit -->
+        <sleep seconds="15" />
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="signtask" depends="signtask-no-ts, signtask-with-ts" />
+
   <!-- ===  Prepare Target ==================================== -->
   <!-- create build directory structure -->
-  <target name="prepare">
+  <target name="prepare" depends="signtask">
     <mkdir dir="${outputDir}" />
     <mkdir dir="${buildDir}" />
     <mkdir dir="${unsignedDir}" />
@@ -138,7 +161,7 @@
     <jar destfile="${annicgui.jar.location}" update="false" index="true" 
manifest="${annicgui.manifest.template}">
       <fileset dir="${outputDir}/" />
     </jar>
-    <signjar jar="${annicgui.jar.location}" alias="${alias}" 
keystore="${keystore}" storepass="${storepass}" keypass="${keypass}" />
+    <tw-sign jar="${annicgui.jar.location}" />
   </target>
 
 
@@ -189,8 +212,6 @@
         <fileset dir="${unsignedDir}/app">
           <include name="*.jar" />
           <include name="*.zip" />
-          <exclude name="activation.jar" />
-          <exclude name="mail.jar" />
         </fileset>
       </sourcefiles>
       <mapper type="glob" dir="${unsignedDir}/app"
@@ -204,7 +225,7 @@
     </pathconvert>
 
     <!-- copy updated JARs into dist directory, removing any existing
-         signatures -->
+         signatures, and sign them ourselves -->
     <for param="jar" list="${unsigned.jar.names}">
       <sequential>
         <zip destfile="${distDir}/app/@{jar}" encoding="UTF-8">
@@ -214,23 +235,9 @@
             <exclude name="META-INF/*.RSA" />
           </zipfileset>
         </zip>
+        <tw-sign jar="${distDir}/app/@{jar}" />
       </sequential>
     </for>
-
-    <copy todir="${distDir}/app">
-      <!-- activation and mail are already signed -->
-      <fileset dir="${unsignedDir}/app">
-        <include name="mail.jar" />
-        <include name="activation.jar" />
-      </fileset>
-    </copy>
-
-    <!-- and sign them -->
-    <pathtofileset name="unsigned.jars.dest" 
pathrefid="unsigned.jars.dest.path"
-                   dir="${distDir}/app" />
-    <signjar alias="${alias}" keystore="${keystore}" storepass="${storepass}" 
keypass="${keypass}">
-      <fileset refid="unsigned.jars.dest" />
-    </signjar>
   </target>
 
   <!-- =================================================================== -->

Modified: teamware/trunk/annotation-diff-gui/build.xml
===================================================================
--- teamware/trunk/annotation-diff-gui/build.xml        2018-11-19 15:44:16 UTC 
(rev 20320)
+++ teamware/trunk/annotation-diff-gui/build.xml        2018-11-23 12:23:04 UTC 
(rev 20321)
@@ -21,6 +21,7 @@
   <property name="buildDir" value="build" />
   <property name="unsignedDir" location="${jws-guis.dir}/unsigned" />
   <property name="keystore" location="${jws-guis.dir}/resources/keystore" />
+  <property name="keystoreType" value="jks" />
   <property name="storepass" value="storepass" />
   <property name="keypass" value="keypass" />
   <property name="alias" value="GATE" />
@@ -79,9 +80,31 @@
     <delete file="${annotationdiffgui.jar.location}" />
   </target>
 
+  <target name="signtask-no-ts" unless="signjar.timestampUrl">
+    <macrodef name="tw-sign">
+      <attribute name="jar" />
+      <sequential>
+        <signjar jar="@{jar}" alias="${alias}" keystore="${keystore}" 
storetype="${keystoreType}" storepass="${storepass}" keypass="${keypass}" />
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="signtask-with-ts" if="signjar.timestampUrl">
+    <macrodef name="tw-sign">
+      <attribute name="jar" />
+      <sequential>
+        <signjar jar="@{jar}" alias="${alias}" keystore="${keystore}" 
storetype="${keystoreType}" storepass="${storepass}" keypass="${keypass}" 
tsaurl="${signjar.timestampUrl}" />
+        <!-- sleep so we don't hit the timestamp server rate limit -->
+        <sleep seconds="15" />
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="signtask" depends="signtask-no-ts, signtask-with-ts" />
+
   <!-- ===  Prepare Target ==================================== -->
   <!-- create build directory structure -->
-  <target name="prepare">
+  <target name="prepare" depends="signtask">
     <mkdir dir="${outputDir}" />
     <mkdir dir="${buildDir}" />
     <mkdir dir="${unsignedDir}" />
@@ -138,7 +161,7 @@
     <jar destfile="${annotationdiffgui.jar.location}" update="false" 
index="true" manifest="${annotationdiffgui.manifest.template}">
       <fileset dir="${outputDir}/" />
     </jar>
-    <signjar jar="${annotationdiffgui.jar.location}" alias="${alias}" 
keystore="${keystore}" storepass="${storepass}" keypass="${keypass}" />
+    <tw-sign jar="${annotationdiffgui.jar.location}" />
   </target>
 
 
@@ -189,8 +212,6 @@
         <fileset dir="${unsignedDir}/app">
           <include name="*.jar" />
           <include name="*.zip" />
-          <exclude name="activation.jar" />
-          <exclude name="mail.jar" />
         </fileset>
       </sourcefiles>
       <mapper type="glob" dir="${unsignedDir}/app"
@@ -204,7 +225,7 @@
     </pathconvert>
 
     <!-- copy updated JARs into dist directory, removing any existing
-         signatures -->
+         signatures, and sign them ourselves -->
     <for param="jar" list="${unsigned.jar.names}">
       <sequential>
         <zip destfile="${distDir}/app/@{jar}" encoding="UTF-8">
@@ -214,23 +235,9 @@
             <exclude name="META-INF/*.RSA" />
           </zipfileset>
         </zip>
+        <tw-sign jar="${distDir}/app/@{jar}" />
       </sequential>
     </for>
-
-    <copy todir="${distDir}/app">
-      <!-- activation and mail are already signed -->
-      <fileset dir="${unsignedDir}/app">
-        <include name="mail.jar" />
-        <include name="activation.jar" />
-      </fileset>
-    </copy>
-
-    <!-- and sign them -->
-    <pathtofileset name="unsigned.jars.dest" 
pathrefid="unsigned.jars.dest.path"
-                   dir="${distDir}/app" />
-    <signjar alias="${alias}" keystore="${keystore}" storepass="${storepass}" 
keypass="${keypass}">
-      <fileset refid="unsigned.jars.dest" />
-    </signjar>
   </target>
 
   <!-- =================================================================== -->

Modified: teamware/trunk/annotator-gui/build.xml
===================================================================
--- teamware/trunk/annotator-gui/build.xml      2018-11-19 15:44:16 UTC (rev 
20320)
+++ teamware/trunk/annotator-gui/build.xml      2018-11-23 12:23:04 UTC (rev 
20321)
@@ -22,6 +22,7 @@
   <property name="buildDir" value="build" />
   <property name="unsignedDir" location="${jws-guis.dir}/unsigned" />
   <property name="keystore" location="${jws-guis.dir}/resources/keystore" />
+  <property name="keystoreType" value="jks" />
   <property name="storepass" value="storepass" />
   <property name="keypass" value="keypass" />
   <property name="alias" value="GATE" />
@@ -84,9 +85,31 @@
     <delete dir="${outputDir}" />
   </target>
 
+  <target name="signtask-no-ts" unless="signjar.timestampUrl">
+    <macrodef name="tw-sign">
+      <attribute name="jar" />
+      <sequential>
+        <signjar jar="@{jar}" alias="${alias}" storetype="${keystoreType}" 
keystore="${keystore}" storepass="${storepass}" keypass="${keypass}" />
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="signtask-with-ts" if="signjar.timestampUrl">
+    <macrodef name="tw-sign">
+      <attribute name="jar" />
+      <sequential>
+        <signjar jar="@{jar}" alias="${alias}" keystore="${keystore}" 
storetype="${keystoreType}" storepass="${storepass}" keypass="${keypass}" 
tsaurl="${signjar.timestampUrl}" />
+        <!-- sleep so we don't hit the timestamp server rate limit -->
+        <sleep seconds="15" />
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="signtask" depends="signtask-no-ts, signtask-with-ts" />
+
   <!-- ===  Prepare Target ==================================== -->
   <!-- create build directory structure -->
-  <target name="prepare">
+  <target name="prepare" depends="signtask">
     <mkdir dir="${outputDir}" />
     <mkdir dir="${buildDir}" />
     <mkdir dir="${unsignedDir}" />
@@ -142,7 +165,7 @@
     <jar destfile="${annotatorgui.jar.location}" update="false" index="true" 
manifest="${annotatorgui.manifest.template}">
       <fileset dir="${outputDir}/" />
     </jar>
-    <signjar jar="${annotatorgui.jar.location}" alias="${alias}" 
keystore="${keystore}" storepass="${storepass}" keypass="${keypass}" />
+    <tw-sign jar="${annotatorgui.jar.location}" />
   </target>
 
 
@@ -205,8 +228,6 @@
         <fileset dir="${unsignedDir}/app">
           <include name="*.jar" />
           <include name="*.zip" />
-          <exclude name="activation.jar" />
-          <exclude name="mail.jar" />
         </fileset>
       </sourcefiles>
       <mapper type="glob" dir="${unsignedDir}/app"
@@ -220,7 +241,7 @@
     </pathconvert>
 
     <!-- copy updated JARs into dist directory, removing any existing
-         signatures -->
+         signatures, and sign them ourselves -->
     <for param="jar" list="${unsigned.jar.names}">
       <sequential>
         <zip destfile="${distDir}/app/@{jar}" encoding="UTF-8">
@@ -230,23 +251,9 @@
             <exclude name="META-INF/*.RSA" />
           </zipfileset>
         </zip>
+        <tw-sign jar="${distDir}/app/@{jar}" />
       </sequential>
     </for>
-
-    <copy todir="${distDir}/app">
-      <!-- activation and mail are already signed -->
-      <fileset dir="${unsignedDir}/app">
-        <include name="mail.jar" />
-        <include name="activation.jar" />
-      </fileset>
-    </copy>
-
-    <!-- and sign them -->
-    <pathtofileset name="unsigned.jars.dest" 
pathrefid="unsigned.jars.dest.path"
-                   dir="${distDir}/app" />
-    <signjar alias="${alias}" keystore="${keystore}" storepass="${storepass}" 
keypass="${keypass}">
-      <fileset refid="unsigned.jars.dest" />
-    </signjar>
   </target>
 
   <!-- =================================================================== -->

Modified: teamware/trunk/executive/web/pages/annicGUIInvoker.jsp
===================================================================
--- teamware/trunk/executive/web/pages/annicGUIInvoker.jsp      2018-11-19 
15:44:16 UTC (rev 20320)
+++ teamware/trunk/executive/web/pages/annicGUIInvoker.jsp      2018-11-23 
12:23:04 UTC (rev 20321)
@@ -71,8 +71,8 @@
 <resources>
 <j2se version="9+" java-vm-args="--add-opens=java.base/java.lang=ALL-UNNAMED" 
max-heap-size="768m"/>
 <j2se version="1.6+" java-vm-args="-Xmx1024M" max-heap-size="768m" />
-<extension name="Activation" href="activation.jnlp" />
-<extension name="Mail" href="mail.jnlp" />
+<jar href="activation-1.1.1.jar" />
+<jar href="mail-1.4.3.jar" />
 <jar href="annicgui.jar" />
 <jar href="geronimo-jaxws_2.1_spec-1.0.jar" />
 <jar href="jsr181-api-1.0-MR1.jar" />

Modified: teamware/trunk/executive/web/pages/annotationDiffJnlpInvoker.jsp
===================================================================
--- teamware/trunk/executive/web/pages/annotationDiffJnlpInvoker.jsp    
2018-11-19 15:44:16 UTC (rev 20320)
+++ teamware/trunk/executive/web/pages/annotationDiffJnlpInvoker.jsp    
2018-11-23 12:23:04 UTC (rev 20321)
@@ -95,8 +95,8 @@
 <resources>
 <j2se version="9+" java-vm-args="--add-opens=java.base/java.lang=ALL-UNNAMED" 
max-heap-size="768m"/>
 <j2se version="1.6+" java-vm-args="-Xmx1024M" max-heap-size="768m" />
-<extension name="Activation" href="activation.jnlp" />
-<extension name="Mail" href="mail.jnlp" />
+<jar href="activation-1.1.1.jar" />
+<jar href="mail-1.4.3.jar" />
 <jar href="annotation-diff-gui.jar" />
 <jar href="docservice-proxy-api.jar" />
 <jar href="docservice-proxy-impl.jar" />

Modified: teamware/trunk/executive/web/pages/jnlpInvoker.jsp
===================================================================
--- teamware/trunk/executive/web/pages/jnlpInvoker.jsp  2018-11-19 15:44:16 UTC 
(rev 20320)
+++ teamware/trunk/executive/web/pages/jnlpInvoker.jsp  2018-11-23 12:23:04 UTC 
(rev 20321)
@@ -261,8 +261,8 @@
   <resources>
   <j2se version="9+" 
java-vm-args="--add-opens=java.base/java.lang=ALL-UNNAMED" 
max-heap-size="768m"/>
   <j2se version="1.6+" java-vm-args="-Xmx1024M" max-heap-size="768m"/>
-  <extension name="Activation" href="activation.jnlp"/>
-  <extension name="Mail" href="mail.jnlp"/>
+  <jar href="activation-1.1.1.jar"/>
+  <jar href="mail-1.4.3.jar"/>
   <jar href="annotator-gui.jar"/>
   <jar href="executive-proxy-api.jar"/>
   <jar href="executive-proxy-impl.jar"/>

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
GATE-cvs mailing list
GATE-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gate-cvs

Reply via email to