Voucher Erzeugung über die API

Started by Riza-Aslan, March 23, 2021, 08:11:25 AM

Previous topic - Next topic
Hallo zusammen,

ich beschäftige mich nun schon seit tagen damit über di API Voucher für das CaptivePortal zu erzeugen. Ich hab mir auch sämtliche Themen dazu angeguckt, aber es will einfach nicht funktionieren. Generell funktioniert die API auch, nur Voucher lassen sich nicht generieren.

Meine URL sieht so aus: https://as-sense.as-lan.home/api/captiveportal/voucher/generateVouchers/Voucher/

aber ich bekomme immer nur die Meldung:

{
"status": "error"
}


Den Provider hab ich mir zur Sicherheit auch noch mit "listProviders" anzeigen lassen...der ist richtig. Method ist natürlich auf POST gestellt und den API Key hab ich in Base64 umgewandelt und gebe ich im Header mit. Aber wie gesagt...andere API aufrufe funktionieren ja auch. "dropVoucherGroup" z.B. funktioniert ohne Probleme.

Leider kann ich auch im System-Log nichts sinnvolles sehen. Da steht immer nur

api[7213] no active session, user not found

OPNsense Version ist: 21.1.3_3

Hat jemand ein Idee? Ich bin echt am verzweifeln. Ich würde die Möglichkeit gern nutzen um aus openHAB heraus mit dem HTTP Binding für meine Gäste Voucher zu erzeugen, damit es vor allem auch meine Frau hinbekommt :D

Danke und viele Grüße,

Riza

Einfach F12 im Browser und Networking tag, dann schauen welche POSTs der Browser schickt.
Gerne dann Doku hier rein für die Nachwelt :)

Danke für den Tipp. Das hilft schon mal sehr. Getestet hab ich mit dem "Advanced REST client" im Chrome. Ich hab jetzt mal den content-type "application/json" hinzugefügt und in den Body die Parameter gepackt "{count: "1", validity: "14400", expirytime: "0", vouchergroup: "Test"}"

Die Source message sieht also so aus (zeigt mir ARC so an):
POST /api/captiveportal/voucher/generateVouchers/Voucher/ HTTP/1.1
HOST: as-sense.as-lan.home
authorization: Basic *Base64 API Key*
content-type: application/json
content-length: 70

{count: "1", validity: "14400", expirytime: "0", vouchergroup: "Test"}


Statt dem Statuscode 200 ("status": "error") bekomme ich jetzt "500 Internal Server Error"

Jeder API Aufruf funktioniert...nur eben "generateVouchers" nicht. Kann es sich um einen Bug handeln? Eigentlich nutzt das Webinterface ja scheinbar auch die API und da funktioniert es. Ist vielleicht die Authentifizierung über den API Key das Problem?

Im System-Log zeigt der mir bei dem Aufruf das an:

api[69903] no active session, user not found
kernel pid 69903 (php-cgi), jid 0, uid 0: exited on signal 11 (core dumped)

Machs doch einfach mal in Chrome ohne irgendwelche extensions, das ist eigentlich nicht so n Drama

Im Chrome bekomme ich es irgendwie nicht hin, aber ich habs noch mit curl probiert (so wie es in den API docs steht) aber bekomme da auch den Fehler 500. Was ich aber merkwürdig finde, ist dass beim Aufruf von "generateVouchers" der kernel aussteigt:

api[69903] no active session, user not found
kernel pid 69903 (php-cgi), jid 0, uid 0: exited on signal 11 (core dumped)


Die pid ist die von dem API Aufruf und ich kann das reproduzieren...allerdings schmiert mir das Webinterface scheinbar ab wenn ich das zu oft mache  ;D

Sieht für mich ganz so aus als würde das den Fehlercode 500 verursachen. Ich kann mir auch langsam nicht mehr vorstellen dass ich einfach zu blöd bin die API zu nutzen, denn alles andere bekomme ich über die API hin. Und ein Authentifizierungsproblem kann es auch nicht sein, denn ich kann ja auch z.B. Vouchergruppen löschen. Ich bin kein Entwickler und stecke auch nicht besonders in BSD und OPNsense drin, aber für mich riecht das sehr nach einem Bug.