Verbindung Hibiscus Payment Server und Desktop Client

 
nfdesign
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: nf-design.eu
Beiträge: 3
Dabei seit: 04 / 2013
Betreff:

Verbindung Hibiscus Payment Server und Desktop Client

 · 
Gepostet: 10.04.2013 - 21:20 Uhr  ·  #1
Hallo,

ich suche nach einem Weg, um den Hibiscus Desktop Client mit dem Payment Server zu verbinden. Leider finde ich jedoch keine Einstellung im Desktopclient (Linux) die es mir ermöglicht, den Payment Server anzusprechen.

Zitat geschrieben von willuhn.de
Installiere auf Deinen Arbeitsplätzen die Desktop-Variante von Hibiscus. Somit hast Du auch von dort Zugriff auf die Bankdaten.


Die Dokumentation hat leider keinen Hinweis für mich, egal ob Wiki oder Webseite. Olaf, kannst du mir vielleicht weiterhelfen?


---EDIT:

Die Api Dokumentation brachte mich auf den Parameter "-c" oder "--client". Wenn ich diesen benutze ($jameica -c), startet Hibiscus, es wird jedoch nach keinem Server gefragt und der Aufruf von "Einstellungen" scheitert mit folgendem Fehlertext:

Code
java.rmi.RemoteException: Für den Service "database" ist kein Server definiert
  at de.willuhn.jameica.hbci.Settings.getDBService(Settings.java:84)
  at de.willuhn.jameica.hbci.server.UmsatzTypUtil.getAll(UmsatzTypUtil.java:60)
  at de.willuhn.jameica.hbci.server.UmsatzTypUtil.getRootElements(UmsatzTypUtil.java:72)
  at de.willuhn.jameica.hbci.gui.parts.UmsatzTypTree.init(UmsatzTypTree.java:62)
  at de.willuhn.jameica.hbci.gui.parts.UmsatzTypTree.<init>(UmsatzTypTree.java:72)
  at de.willuhn.jameica.hbci.gui.controller.SettingsControl.getUmsatzTypTree(SettingsControl.java:97)
  at de.willuhn.jameica.hbci.gui.views.Settings.bind(Settings.java:102)
  at de.willuhn.jameica.gui.GUI$4.run(GUI.java:615)
  at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
  at de.willuhn.jameica.gui.GUI$5.run(GUI.java:786)
  at org.eclipse.swt.widgets.Synchronizer.syncExec(Unknown Source)
  at org.eclipse.swt.widgets.Display.syncExec(Unknown Source)
  at de.willuhn.jameica.gui.GUI.startSync(GUI.java:782)
  at de.willuhn.jameica.gui.GUI.startView(GUI.java:519)
  at de.willuhn.jameica.gui.GUI.startView(GUI.java:454)
  at de.willuhn.jameica.hbci.gui.action.Settings.handleAction(Settings.java:30)
  at de.willuhn.jameica.gui.Menu$1.handleEvent(Menu.java:174)
  at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
  at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
  at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
  at de.willuhn.jameica.gui.GUI.loop(GUI.java:803)
  at de.willuhn.jameica.gui.GUI.init(GUI.java:294)
  at de.willuhn.jameica.system.Application.init(Application.java:144)
  at de.willuhn.jameica.system.Application.newInstance(Application.java:86)
  at de.willuhn.jameica.Main.main(Main.java:78)


Ein Diagnosebackup gibt es hier.

Viele Grüße,
Fabian
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: Verbindung Hibiscus Payment Server und Desktop Client

 · 
Gepostet: 10.04.2013 - 23:47 Uhr  ·  #2
Den "-c" Parameter muss ich irgendwann mal ausbauen. Im Prinzip beherrscht Jameica auch ein Client-Server-Protokoll via RMI. Allerdings wird das in keinem Plugin wirklich genutzt.

Der gemeinsame Zugriff auf die Daten zwischen Hibiscus-Desktop und Payment-Server laeuft schlicht ueber eine gemeinsame Datenbank. Heisst: Du musst den Payment-Server so konfigurieren, dass er eine MySQL-Datenbank verwendet und keine embedded H2-Datenbank. Anschliessend konfigurierst du deinen Hibiscus-Desktop-Client so, dass er ebenfalls auf diese Datenbank zugreift. Im Wiki unter http://www.willuhn.de/wiki/doku.php?id=support:mysql findest du hierzu Hinweise.

Mehr ist das nicht. Wenn es dir nur darum geht, die selben Daten auf mehreren Desktops in deinem LAN zu haben, brauchst du auch den Payment-Server nicht. Der Payment-Server ist NICHT sowas wie ein Fileserver, der primaer dazu da ist, Clients mit Daten zu versorgen. Viel mehr ist der Payment-Server eine Hibiscus-Variante, die ohne grafische Benutzeroberflaeche laeuft, dafuer aber mit einem Webinterface. Und sie ist primaer nur dazu gedacht, die Kommunikation mit der Bank zeitgesteuert zu automatisieren. Du kannst den z.Bsp. nutzen, um automatisch 4 x taeglich deine Kontoauszuege abrufen zu lassen, ohne dass du das manuell von deinem Arbeitsplatz aus machen musst.
nfdesign
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: nf-design.eu
Beiträge: 3
Dabei seit: 04 / 2013
Betreff:

Re: Verbindung Hibiscus Payment Server und Desktop Client

 · 
Gepostet: 10.04.2013 - 23:59 Uhr  ·  #3
Alles klar, danke! Bin davon ausgegangen, dass der Server die Methodenaufrufe für den Client über RMI liefert.
Das heisst aber auch, jeder Client der Aufträge wie z.B. eine Überweisung einreichen soll, erledigt das lokal mit der Schlüsseldatei und aktualisiert danach die Datenbank?
Bedeutet natürlich dann, dass jeder Arbeitsplatz, der zum Banking genutzt werden soll, die Schlüsseldatei des Kontos lokal oder auf einem Netzlaufwerk einbinden muss.

Evtl. lässt sich ja ein Jamaica-Plugin für die Arbeitsplätze auf Basis der XML-RPC Schnittstelle realisieren - ich werde mich da mal reinarbeiten.

Das mit dem Server war mir bereits bewusst. Aber gut, dass du es nochmal sagst - der ein oder andere unerfahrenere User könnte sich da viel unnötigen Aufwand machen.
Ich selbst will den Server benutzen, um über ein Backend ERP per XML-RPC automatisiert Zahlungsaufträge einzureichen und die Synchronisierung durchzuführen.
Prüfung von Zahlungen und automatisieren von Administrationsaufgaben stehen auch auf auf der To-Do Liste.

Alles nur möglich dank Hibiscus!
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: Verbindung Hibiscus Payment Server und Desktop Client

 · 
Gepostet: 11.04.2013 - 00:18 Uhr  ·  #4
Zitat geschrieben von nfdesign
Alles klar, danke! Bin davon ausgegangen, dass der Server die Methodenaufrufe für den Client über RMI liefert.
Das heisst aber auch, jeder Client der Aufträge wie z.B. eine Überweisung einreichen soll, erledigt das lokal mit der Schlüsseldatei und aktualisiert danach die Datenbank?
Bedeutet natürlich dann, dass jeder Arbeitsplatz, der zum Banking genutzt werden soll, die Schlüsseldatei des Kontos lokal oder auf einem Netzlaufwerk einbinden muss.


Korrekt. Alternativ koenntest du die Schluesseldatei natuerlich auch auf dem Server importieren. Dann brauchst du die Ueberweisungen auf dem Client nur noch anlegen. Der Server fuehrt sie dann bei Faelligkeit automatisch aus (insofern das Absenden faelliger Ueberweisungen fuer das Konto auch auf dem Server aktiviert ist - in den Konto-Einstellungen). Allerdings hast du dann natuerlich nicht mehr die direkte Kontrolle drueber. Jeder Hibiscus-Client im LAN kann dann Zahlungen ausloesen. Ich persoenlich finde es sicherer, wenn der Server lediglich Umsaetze abruft, Zahlungsauftraege jedoch direkt vom Client aus an die Bank gesendet werden. Dann koennen nur die Clients Ueberweisungen senden, die die Schluesseldatei haben.
nfdesign
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: nf-design.eu
Beiträge: 3
Dabei seit: 04 / 2013
Betreff:

Re: Verbindung Hibiscus Payment Server und Desktop Client

 · 
Gepostet: 11.04.2013 - 00:43 Uhr  ·  #5
Okay - das habe ich bereits gemacht.

Die direkte Kontrolle über die Überweisung brauche ich gar nicht - wenn die Clients Überweisungen anlegen können, reicht das vollkommen für mich.
Dass der Server die Aufträge aus der Datenbank dann ausführt ist die Kernfunktion, die für mich wichtig war.
Durch die E-Mail Benachrichtigung kann ich ja die Synchronisation überwachen. Die Funktion des Hibiscus (Web)Servers wird bei mir durch interne serverweite Kontrollmechanismen sichergestellt.

Die Sicherheitsfrage stellt sich bei im Moment max. 2 Clients, die ausschließlich über einen SSH-Tunnel versorgt werden, nicht in diesem Umfang. Dazu kommt, dass der Server die Schlüsseldatei für die Umsatzabfrage ohnehin benötigt.

Sicherheitskritischer sehe ich die Übergabe des Master-Passworts an das Framework im Initscript.
Da ich unter Debian arbeite, habe ich mir ein SystemV-Initscript angelegt. Um den Server mit einem unpriviligierten Nutzer zu starten, benutze ich im Moment sudo und übergebe das Passwort per "-p" Parameter. Hat jedoch den Nachteil, dass das Passwort in der Prozessliste auftaucht. Der Parameter "-w" scheitert daran, dass die Passwortdatei mit Rechten für den unpriviligierten Nutzer angelegt werden müsste.

Soweit ich das sehe bringt der Server keine integrierte Möglichkeit mit, den Aufruf mit einer anderen UID/GID auszuführen nach dem die Passwortdatei gelesen wurde, oder?
Die Passworteingabe per stdin (echo $PASS | java ..) wie im rcjameica Script hat bei mir leider nicht funktioniert.

Wäre es evtl. möglich, in Java das Passwort aus einer Umgebungsvariable zu lesen?
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: Verbindung Hibiscus Payment Server und Desktop Client

 · 
Gepostet: 12.04.2013 - 09:51 Uhr  ·  #6
Mit einer Umgebungsvariable gaebe es dann eine vierte Moeglichkeit zur Uebergabe des Passwortes. Das sind mir ehrlich gesagt zu viele Optionen.
Kannst du dein Script nicht so aendern, dass der Wechsel auf den unpriviligierten User passiert, bevor das Startscript von Jameica aufgerufen wird. Sprich: Script A macht ein "su" auf den unpriviligierten User und startet damit Script B. Dort drin wird dann Jameica gestartet. Dann muesste auch die Passwort-Uebergabe per STDIN gehen.
Gewählte Zitate für Mehrfachzitierung:   0