Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.0
    • Fix Version/s: 1.0.1
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      0

      Description

      Currently, when signing a webstart app, the JNLP file is not signed. This leads to an unnecessary warning when starting the application. It may not sound like much, but for professional companies that pay for 3rd party certifications, this fact requires editing of the JNLP file, updating of the main jar and signing of the main jar after the griffon build has finished.

      To sign the JNLP file, according to the spec (see section 5.4.1), the main jar should contain the jnlp file at the location JNLP-INF/APPLICATION.JNLP before being signed. This JNLP file should be identical to the jnlp file used to start the application.

      There are two problems with the current solution in griffon:

      1. the JNLP file is not included in the main jar
      2. the main jar in the JNLP file is not correct
        • currently, it is hardcoded that griffon-rt-(version).jar is the main jar, which is not (always) the case. For me, griffon-swing-runtime-(version).jar is the main jar

        Activity

        Hide
        Andres Almiray added a comment -

        Fixed with

        https://github.com/griffon/griffon/commit/0d792c5dc2ec3329630e551697843f68d3962222
        https://github.com/griffon/griffon/commit/d73f78391ac2ddc24f0e71f20829f7e68a7d1c4f

        Be mindful that this feature is not enabled by default. You must configure the following flag in BuildConfig.groovy in order to activate it

        griffon {
            jnlp {
                sign = true
            }
        }
        
        Show
        Andres Almiray added a comment - Fixed with https://github.com/griffon/griffon/commit/0d792c5dc2ec3329630e551697843f68d3962222 https://github.com/griffon/griffon/commit/d73f78391ac2ddc24f0e71f20829f7e68a7d1c4f Be mindful that this feature is not enabled by default. You must configure the following flag in BuildConfig.groovy in order to activate it griffon { jnlp { sign = true } }
        Hide
        Steinar Haugen added a comment -

        That was fast! Thanks.

        I've applied the changes and tested. It was a small problem with resolving of the JNLP filename (I'm using a custom name, not 'application.jnlp').

        The following edit of griffon-1.0.0/scripts/Package.groovy (line 261) seemed to work:

            File jnlpFile = packageType == 'webstart' ?
                new File(buildConfig.griffon.webstart.jnlp ?: 'application.jnlp') :
                new File(buildConfig.griffon.applet.jnlp ?: 'applet.jnlp')
        
        Show
        Steinar Haugen added a comment - That was fast! Thanks. I've applied the changes and tested. It was a small problem with resolving of the JNLP filename (I'm using a custom name, not 'application.jnlp' ). The following edit of griffon-1.0.0/scripts/Package.groovy  (line 261) seemed to work: File jnlpFile = packageType == 'webstart' ? new File(buildConfig.griffon.webstart.jnlp ?: 'application.jnlp') : new File(buildConfig.griffon.applet.jnlp ?: 'applet.jnlp')
        Hide
        Andres Almiray added a comment -
        Show
        Andres Almiray added a comment - And now the tweak is there https://github.com/griffon/griffon/commit/39cabda9e565efef0318ac836bd1465cf0c867d8 Thanks!

          People

          • Assignee:
            Andres Almiray
            Reporter:
            Steinar Haugen
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: