J7u45 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рдЬрд╛рд╡рд╛ рд╡реЗрдм рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдкреЛрд╕реНрдЯ рдЬрд╛рд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рд╕реБрд░рдХреНрд╖рд╛ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реЛрдЧреА, рдЬреЛ рд╕рдВрднрд╡рддрдГ рд╡реЗрдм рд╕реНрдЯрд╛рд░реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рддреЛрдбрд╝ / рддреЛрдбрд╝ рджреЗрдЧрд╛ред рд╕рднреА рдЙрджрд╛рд╕реАрди рдирд╣реАрдВ рд╣реИрдВ - рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред

рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдиреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд╣реЛрддреЗ рд╣реА рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдЬрд╛рд╡рд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдерд╛ рдХреЛ рдЕрдкрдирд╛ рд▓рд┐рдпрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдЗрд╕ рдмрд╛рд░ рд╣рдордиреЗ рдпрд╣реА рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛, рд╡реЗрдм рд╕реНрдЯрд╛рд░реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рджреМрдбрд╝рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЖрд╡реЗрджрди, рдпреБрджреНрдз рдХреА рдШреЛрд╖рдгрд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдмрд╕ рдмрдВрдж рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдЕрдкрдиреА рдЖрд╕реНрддреАрди рдКрдкрд░ рдЙрдард╛рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ, рдкрд╣рд▓реЗ рдЕрдЬреНрдЮрд╛рдд рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреАрдВ рдХрд┐ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЧреБрдгреЛрдВ рдХреА рдХрдореА рдереА: рдЕрдиреБрдорддрд┐рдпрд╛рдБ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рдирд╛рдо, рдХреЛрдбрдмреЗрд╕ред рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рднреА рд░реВрдкреЛрдВ рдореЗрдВ рдореВрд░реНрдЦ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ:

Permissions: all-permissions Application-Name: AppName Codebase: * 


рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ, рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рдВрдмреА рдбрд┐рдмрдЧ рдХреЗ рджреМрд░рд╛рди (рдЦреБрд╢ рдмрдЪрдкрди рдХреЗ рд▓рд┐рдП рдПрдХреНрд▓рд┐рдкреНрд╕ рдЖрд░рд╕реАрдкреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж), рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдкреИрд░рд╛рдореАрдЯрд░ рдХрд┐рд╕реА рддрд░рд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдП, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдЕрдЧрд▓реА рдкреЛрд╕реНрдЯ рд╣реБрдИ: stackoverflow.com/questions/19400725-with-java-update- 7-45-рдСрдл-рд╕рд┐рд╕реНрдЯрдо-рдЧреБрдг-рдХреЛрдИ-рдФрд░-рд╕реЗрдЯ-рд╕реЗ-jnlp-tag-property ред
рдЗрд╕реЗ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ JNLP рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

3 рд╕рдорд╛рдзрд╛рди рдкрд╛рдП рдЧрдП:
1) JNLP рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ - docs.oracle.com/javase/7/docs/technotes/guides/jweb/signedJNLP.html#signedJnlp - рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - JPLP-INF рдирд╛рдо рдХреЗ JNLP-INF рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд jarlp рдореЗрдВ jnlp рдбрд╛рд▓реЗрдВред JNLP рдФрд░ рдпрд╣ рдЦреБрд╢реАред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ JNLP рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛, рдордХреНрдЦреА рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред

2) рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд JNLP рдлрд╝рд╛рдЗрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдБ - blogs.oracle.com/thejavatutorials/entry/signing_jar_files_with_a
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдкрд░ рдмрд╕ рдЧрдпрд╛, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ: рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд╣реА, рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо APPLICATION_TEMPLATE.JNLP рдФрд░ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ '*' рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд░рд╕рдкреВрд░реНрдг рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╢рд░реНрдорд╕рд╛рд░ рд╣реЛрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╡реЗрдм рдХреЗ рдЕрдВрджрд░ рдЬрд╛рдХрд░ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ jnlp рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб com.sun.javaws.jnl.XMLFormat рдореЗрдВ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рдерд╛:

  public static boolean isBlacklisted(XMLNode paramXMLNode) { if (paramXMLNode == null) { return false; } if (paramXMLNode.getName() != null) { XMLAttribute localXMLAttribute; String str; if ((paramXMLNode.getName().equals("java")) || (paramXMLNode.getName().equals("j2se"))) { for (localXMLAttribute = paramXMLNode.getAttributes(); localXMLAttribute != null; localXMLAttribute = localXMLAttribute.getNext()) { if (localXMLAttribute.getName().equals("java-vm-args")) { str = localXMLAttribute.getValue(); if ((str != null) && (str.indexOf("*") >= 0)) { Trace.println("Blacklisted - a = " + localXMLAttribute, TraceLevel.SECURITY); return true; } } } } else if (paramXMLNode.getName().equals("property")) { for (localXMLAttribute = paramXMLNode.getAttributes(); localXMLAttribute != null; localXMLAttribute = localXMLAttribute.getNext()) { str = localXMLAttribute.getValue(); if ((str != null) && (str.indexOf("*") >= 0)) { Trace.println("Blacklisted - a = " + localXMLAttribute, TraceLevel.SECURITY); return true; } } } } if (isBlacklisted(paramXMLNode.getNested())) { return true; } return isBlacklisted(paramXMLNode.getNext()); } 


рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ: рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЯреИрдЧ рдХрд╛рд▓реА рд╕реВрдЪреА рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╡рд╣ рдРрд╕реА jnlp рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреЛрдбрд╝рддрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдЖрдк рдЬрд╛рд╡рд╛ рдпрд╛ j2se рдЯреИрдЧ рдХреА рдЬрд╛рд╡рд╛-рд╡реАрдПрдо-рдЖрд░реНрдЧреНрд╕ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдорд╛рди рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд░ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╡рд┐рдлрд▓рддрд╛, рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдХрдИ рдЧреБрдг рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВ рдФрд░ рдлрд╛рд░реНрдо рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:
 <property name="client.specific.property" value="client.specific.value"/> 


рдФрд░ рд╣рдо рд╕рд┐рд░реНрдл рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ:
 <property name="client.specific.property" value="*"/> 


рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо (рдЙрд╕ рд╕рдордп) рд╡рд┐рдХрд▓реНрдк рдмрдЪрддрд╛ рд╣реИ:

3) Bugs.openjdk.java.net/browse/JDK-8023821 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЧреБрдг рдЙрдкрд╕рд░реНрдЧ 'jnlp' рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд┐рд╕реНрдЯрдо рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред ред рдЪреВрдВрдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛:

  private static void initializeSystemProperiesFromJnlp() { //Hack for not signing JNLP file Properties properties = System.getProperties(); // copy properties to avoid ConcurrentModificationException Properties copiedProperties = new Properties(); copiedProperties.putAll(properties); Set<Object> keys = copiedProperties.keySet(); for (Object key : keys) { if (key instanceof String) { String keyString = (String) key; if (keyString.startsWith("jnlp.")) { //$NON-NLS-1$ // re set all properties starting with the jnlp-prefix // and set them without the prefix String property = System.getProperty(keyString); String replacedKeyString = keyString.replaceFirst("jnlp.", ""); //$NON-NLS-1$ //$NON-NLS-2$ System.setProperty(replacedKeyString, property); } } } } 


рдЗрд╕ рд╣реЗрд░рдлреЗрд░ рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо, рдпрд╣ рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдЬреЛ рдЧреИрдЬреЗрдЯ рдореЗрдВ рд╣реИрдВ, рдЕрдЪрд╛рдирдХ рд╣рдореЗрдВ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдФрд░, рдЕрдзрд┐рдХ рдХрд╛рдВрдЯреЗрджрд╛рд░, рд▓реЗрдХрд┐рди рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдмрд╛рдж рдореЗрдВ рд╕реАрдЦрд╛ред рдпрд╣ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред

Source: https://habr.com/ru/post/In202016/


All Articles