[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Um es mit D*B's Worten zu sagen:
    Java-Aufrufe aus RPGLE sind aufwändig zu implementieren und sind mehr Huddel als nötig.
    Zumal jeder Aufruf einer JAVA-Routine im RPG einen zusätzlichen JVM-Job generiert.
    Auf seiner Internet-Seite http://www.bender-dv.de/ bietet er einen AppServer4RPG an.
    Hiermit könnt ihr Java-Aufrufe in einer JVM kapseln und von jedem RPGLE aufrufen.
    Das ist genau das was ich gesagt habe...
    Ich habe ja gemeint dieses als eigenständiges "Microservice" (also ein eigener Job) laufen zu lassen.
    Da hast du eben nur einen oder ein paar (je nach dem wieviel du da parallelisieren willst) und die haben fix ihre JVM.
    Und die Kommunikation findet via Data Queue statt.
    Also wenn du es strukturiert aufbaust, hast du diesen Teil komplett abgekapselt in einer Java-Box/Job und der Rest kann ganz normal in RPG laufen, ohne, dass dort irgendwelche JVMs oder so benötigt werden.

    Hab ich schon oft gemacht, funktioniert super, schnell, einfach und flexibel zu skalieren.

  2. #14
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zitat Zitat von holgerscherer Beitrag anzeigen
    Also erstens kann auch ein Java-Entwickler auf der i selbst sich um ein Java-Programm kümmern, und zweitens bleibt die Frage: wie oft und wo ist die Logik denn nun hinterlegt?
    Dieser Webservice wird Daten zurückliefern, deren Logik sich allein auf der IBM i befindet. Die RPG Entwickler sind die einzigen, die wissen, wo die Daten genau liegen und wie man drankommt. Um die Daten zu ermitteln, sind auf der i bereits RPG-Programm vorhanden. Wir finden es nicht sinnvoll, diese Logik nochmal in Java nachzubilden.

  3. #15
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zitat Zitat von Rainer Ross Beitrag anzeigen
    Hallo Dieter,

    machbar in RPG ist es schon, aber aufwändig. Bisher habe ich für ein eigenes Projekt Oauth 1.0 in RPG implementiert, das funktioniert ganz gut. Nach meiner Information gibt es als Bezahlprogramm nur die bvstools für eine Oauth 2.0 native RPG Anwendung. Bisher kam auch keine kundenseitige Anfrage für so ein Projekt.

    Herzliche Grüße
    Rainer Ross
    Vielen Dank für deine Antwort, Rainer. Das bestärkt mich darin, die Authentifizierung in Java zu machen.

  4. #16
    Registriert seit
    Jan 2009
    Beiträge
    67
    Natürlich kann man OAuth 2.0 auf IBM i benutzen. Ob als OAuth Provider oder Consumer es ist immer das gleiche: Man braucht das passende Serviceprogramm dazu. Glücklicherweise existiert dieses auch schon ... und zwar in dem Projekt ILEastic - einem Microservice Framework für IBM i. Es unterstützt Basic Auth und JWT Tokens. Bei den JWT Tokens ist man allerdings beschränkt auf HS256.

    Ich habe damit in RPG einen Web Service geschrieben, der einen mit Node.js erstellten JWT Token für Auth verifiziert und die Payload Daten verwendet. Kein Problem.

    Das JWT Serviceprogramm kann auch benutzt werden ohne direkt das ILEastic Framework zu benutzen.

    ILEastic : https://github.com/sitemule/ILEastic

    API Dokumenation siehe ILEDocs unter http://iledocs.rpgnextgen.com Projekt ILEastic.

    JWT ist im plugins Ordner zu finden.

    Mit dem Serviceprogramm kann man übrigens auch auf sehr einfache Weise einen OAuth 2.0 Provider selber schreiben. Grant Type : Client Credentials ist sehr einfach umzusetzen. Kaum mehr Aufwand als Basic Auth.

    Schöne Grüße

    Mihael

  5. #17
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Vielen Dank Mihael,

    ich werde mir das ansehen.

    Viele Grüße

    Dieter

  6. #18
    Registriert seit
    Jan 2009
    Beiträge
    67
    Im Moment funktioniert das Bauen des ILEastic Projekt nicht out-of-the-box. Wenn du das angehen willst, dann schreib mir einfach ( mihael at rpgnextgen dot com ).

  7. #19
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    ok, vielen Dank!

    Dieter

  8. #20
    Registriert seit
    Aug 2014
    Beiträge
    179
    Hallo Dieter,

    inzwischen habe ich bei einem Kunden einen Webservice mit OAuth2.0 Authentifizierung implementiert.

    Das geht über 2 HTTP-Requests: 1. Den Token holen und dann 2. mit dem Token auf den Webservice zugreifen.

    Die HTTP-Requests kann man mit SYSTOOLS.HTTPPOSTCLOB oder jetzt mit dem neuen Technologie-Refresh (jetzt ohne JAVA im Untergrund und erheblich schneller) den Request mit QSYS2.HTTP_GET oder QSYS2.HTTP_POST machen.

  9. #21
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Hallo Rainer,
    danke für deine Antwort. Das Problem haben wir allerdings schon vor längerer Zeit gelöst.

    Bei uns ging es nicht darum, auf einen Webservice zuzugreifen, sondern einen Webservice zu implementieren, der ein OAuth Token bekommt.
    Wir sind da inzwischen bei Keycloak gelandet. Der Keycloak Server kann uns das Token entschlüsseln und die Daten als JSON zurückliefern.

Similar Threads

  1. Webservice per SQL abfragen
    By KM in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 04-11-22, 07:41
  2. Protokoll für Webservice
    By svit in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 02-03-17, 16:13
  3. WebService länge der Parameterübergabe
    By svit in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 11-09-14, 14:23
  4. WebService über HTTPS
    By harbir in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 26-03-14, 14:13
  5. AS/400-Eth-ISDN(incl. LAN+TCP/IP)-Eth-5494
    By Tornado in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 16-11-01, 14:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •