Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Thomas Schulte am 30.06.14 - 16:39:42



Titel: Java Agent und Access denied Meldung.
Beitrag von: Thomas Schulte am 30.06.14 - 16:39:42
IBM Notes Version 8.5.3 FP3.

Folgendes Problem:
Ich habe hier einen Agenten der in Java geschrieben werden soll.
Über diesen Agenten soll ein Webservice aufgerufen werden. Dieser Webservice läuft über HTTPS aber das ist eine Baustelle die später zu lösen sein wird.

Im Moment bekomme ich beim Aufrufen von:
Pam4ProjectWSASoap soap = (Pam4ProjectWSASoap) me_serv.getPort(Pam4ProjectWSASoap.class);
eine AccessControlException
java.security.AccessControlException: Access denied (java.util.logging.LoggingPermission control)

Die Security Eigenschaften des Agents stehen eigentlich auf:
runtimeSecurityLevel = 3. Allow unrestricted operations with full administration rights.
Das für mich interessante ist, das man, sobald man den Java Agent source Code aufruft, und im Code irgendetwas ändert die Security in den Agent Properties auf  "Run as Web user" geändert wird und sich dann auch nicht mehr ändern lässt, bis man den Agenten im Source gespeichert und geschlossen hat.

Der komplette Code des Agents sieht aktuell so aus:
Code:
import lotus.domino.*;
import javax.xml.namespace.QName;
import javax.xml.ws.*;
import java.net.URL;
import javax.swing.JOptionPane;
import java.util.logging.Level;

public class JavaAgent extends AgentBase {

    public void NotesMain() {

      try {
       //   Session session = getSession();
       //   AgentContext agentContext = session.getAgentContext();
       // (Your code goes here)
       //   Document me_Doc = agentContext.getDocumentContext();
          java.util.logging.Logger.getAnonymousLogger().setLevel(Level.OFF );

      URL me_url = new URL("http://pam-elements20/Pam.Web/pam4Projectws/Pam4ProjectWS.asmx?wsdl");
      QName me_qname = new QName("http://www.hs-soft.com/webservices/PAM-STORAGE","Pam4ProjectWSA");

          Service me_serv = Service.create(me_url, me_qname);
          Pam4ProjectWSASoap soap = (Pam4ProjectWSASoap) me_serv.getPort(Pam4ProjectWSASoap.class);
          javax.xml.ws.BindingProvider s=((javax.xml.ws.BindingProvider)soap);
         
          String me_String = soap.ping();
          JOptionPane.showMessageDialog(null, me_String);

      } catch(Exception e) {
      e.printStackTrace();
      String me_eString = e.toString();
      JOptionPane.showMessageDialog(null, me_eString);
       }
   }
   
}

Die Java library mit den entsprechenden Pam4ProjectWSA Klassen ist vorhanden und auch eingebunden.

Hat irgendjemand eine Ahnung warum diese Meldung kommt und wie man die abstellen kann?


Titel: Re: Java Agent und Access denied Meldung.
Beitrag von: Thomas Schulte am 30.06.14 - 16:42:07
Und noch eine Information.
Das Teil muss zwingend auf dem Notes Client laufen.


Titel: Re: Java Agent und Access denied Meldung.
Beitrag von: Tode am 01.07.14 - 07:37:18
Wahrscheinlich musst Du die java.policy auf dem Client anpassen... Schau mal hier im Forum, da gab es schon einige Threads dazu... Und irgendwas war noch, dass man statt der java.policy eine andere Datei benutzen soll, weil die java.policy bei jedem update überschrieben wird...


Titel: Re: Java Agent und Access denied Meldung.
Beitrag von: Werner Götz am 01.07.14 - 07:40:32
Diese Sicherheitseinstellungen werden doch über die Datei
    java.policy
im Verzeichnis (abh. vom Installationspfad ...)
    C:\Programm Files\IBM\Lotus\Notes\jvm\lib\security
gesteuert?

Hast Du das dort schon mal überprüft? Die JVM muss bei Änderungen wohl evtl. durchgestartet werden ...

D.h. auch wenn Du die richtigen Einstellungen findest, musst Du später dafür sorgen, dass das auf allen Clients richtig gesetzt ist !?!

-Werner


Titel: Re: Java Agent und Access denied Meldung.
Beitrag von: Ralf_M_Petter am 01.07.14 - 08:00:51
Die richtige Erlaubnis für das Policy file müsste permission java.util.logging.LoggingPermission "control";

Wenn du dies unter den "default permissions granted to all domains" einträgst, sollte es gehen. Eine andere Möglichkeit wäre es die jar die den kritischen Code enthält in das ext Verzeichnis der JVM des Clients zu deployen. Dann sollte es auch funktionieren.

Grüße

Ralf


Titel: Re: Java Agent und Access denied Meldung.
Beitrag von: umi am 01.07.14 - 08:52:02
@Tode
Anstatt dem java.policy kann die java.pol verwendet werden. Diese sollte nicht überschrieben werden (ausser beim Update auf 9.0.1Fp1 :-) )


Titel: Re: Java Agent und Access denied Meldung.
Beitrag von: Tode am 01.07.14 - 09:20:48
@umi: Genau das wars, danke für den Hinweis (besonders, da ich das mit 9.0.1FP1 auch noch nicht wusste)