Search code examples
javasecuritydigital-signaturejnlpjava-web-start

Property tag in JNLP-file


My Java Web Start application have own digital signature. All jar-files are signed, but my application still show security warning dialog "Part of the application is missing a digital signature. Only run if you trust the origin of the application". I have found that warning is caused if i use property tag in jnlp-file. Without property tags everything works perfectly. Is there alternative ways to pass properties? (different tags or something)

In JNLP-file, i have defined some properties like:

<property name="loginconfig" value="//loginconfigpath" />
<property name="iconmap" value="//iconmappath" />

etc..


Solution

  • From Java Network Launch Protocol (JNLP) Support: Command Line Arguments..

    Command Line Arguments

    The JNLP file syntax supports multiple mechanisms for passing command line arguments to the JVM. The java-vm-args attribute of the <java> tag may be used, the max-heap-size attribute of the same tag may cause implicit specification of an -Xmx argument, or a system property may be specified with the <property> tag.

    The new Java Plug-In supports specification of JVM command-line arguments on a per-applet basis, so all of these features of the JNLP file format are supported, with some rules and restrictions.

    A set of "secure" JVM command-line arguments and system properties is defined in the JNLP File Syntax section of the Java Web Start Developers' Guide. In the new Java Plug-In, by default, only these secure command-line arguments may be specified on a per-applet basis.

    Non-secure command-line arguments may only be specified on a per-applet basis if:

    • the applet is launched via a JNLP file, and
    • the command-line arguments are specified in the JNLP file, and
    • the applet's JNLP file is signed.

    I suspect they have extended that to include any JNLP file (as opposed to just applets), and that this use of properties has triggered that error you are seeing.