Java.policy

21454543_sJava.policy filen på Domino serveren afgøre hvilke rettigheder dine java programmer kører med. Default settings er desværre meget restriktive – og du kan derfor ikke:

  • Libraries som Log4J, JUnit eller Java Logging
  • Lave kode der bruger Reflection til at f.eks. at læse private fields eller bruge dynamic classloading

Der findes et par løsninger:

  • Lav din kode i jar filer og gem det i Ext folderen på serveren. Her får de automatisk full access. Dette er dog for omstændigt at gøre for din egen kode – og kan give problemer hvis du har behov for forskellige version af jar filerne til dine forskellige applikationer.
  • Kør det som en OSGi plugin
  • Ændre i java.policy filen. Absolut anbefalet.
  • Lav simpel kode der ikke benytter de færdige frameworks eller smarte features i Java, f.eks. nogle af Reflection metoderne. Æv – jeg hader begrænsninger!

Du ser allerhelst at din admin tilføjer denne linie til /jvm/lib/security/java.policy filen:

permission java.security.AllPermission;

Ellers må du være mere specifik, f.eks:

permission java.lang.RuntimePermission "setContextClassLoader"; 
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";

Bemærk at filen overskrives ved opgradering af Domino serveren – derfor bør ændringer laves i en ny fil kaldet java.pol (det er specificeret i java.security filen)

Links

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

*