Mittels TCL an der XML-RPC API authentifizieren

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Antworten
foxriver76
Beiträge: 18
Registriert: 20.04.2018, 12:40
Hat sich bedankt: 1 Mal

Mittels TCL an der XML-RPC API authentifizieren

Beitrag von foxriver76 » 08.01.2019, 10:57

Hi Leute,

gibt es eine Möglichkeit, sich aus einem TCL Skript an der XML-RPC Schnittstelle zu authentifizieren?

Bislang habe ich mit folgendem Skript den Duty Cycle und noch ein paar mehr Daten auslesen können:

Code: Alles auswählen

!# dutycycle.fn 0.3
string stderr;
string stdout;
system.Exec("/bin/sh -c '" # 'echo "load tclrpc.so; puts [xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces ]" |tclsh' # "'", &stdout, &stderr);
WriteLine(stdout);
Bei aktiver Authentifizierung bekomme ich leider nur ein Unauthorized im stderr zurück. Gibt es eine Möglichkeit die Credentials zur Authentifizierung im xmlrpc Call mitzugeben?

beste Grüße

fox

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Mittels TCL an der XML-RPC API authentifizieren

Beitrag von jp112sdl » 08.01.2019, 12:33

Hi,

geht es evtl mit

Code: Alles auswählen

... [xmlrpc http://user:password@127.0.0.1:2001/ ...

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

foxriver76
Beiträge: 18
Registriert: 20.04.2018, 12:40
Hat sich bedankt: 1 Mal

Re: Mittels TCL an der XML-RPC API authentifizieren

Beitrag von foxriver76 » 08.01.2019, 13:08

Leider nicht, da scheint er syntaktisch nicht mit einverstanden zu sein.

Code: Alles auswählen

Transport error on xmlrpc call listBidcosInterfaces to http://username:pw@127.0.0.1:2001/: Error in XmlRpcClient::doConnect: Could not connect to server (error 0).

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: Mittels TCL an der XML-RPC API authentifizieren

Beitrag von jmaus » 08.01.2019, 15:55

jp112sdl hat geschrieben:
08.01.2019, 12:33
geht es evtl mit

Code: Alles auswählen

... [xmlrpc http://user:password@127.0.0.1:2001/ ...
Nein das geht (noch) nicht. Die darunterlegende XMLRPC Library beherrscht weder die Möglichkeit sich via https noch via basic authentifizierung gegen einen XmlRpc server zu authentifizieren/verbinden. Wie aber schon angedeutet steht das bereits auf der TODO liste, hat jedoch eine geringe Priorität da nicht ganz so dringend/wichtig. Es wird aber dran gearbeitet!
Zuletzt geändert von jmaus am 08.01.2019, 15:58, insgesamt 2-mal geändert.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

foxriver76
Beiträge: 18
Registriert: 20.04.2018, 12:40
Hat sich bedankt: 1 Mal

Re: Mittels TCL an der XML-RPC API authentifizieren

Beitrag von foxriver76 » 08.01.2019, 15:57

jmaus hat geschrieben:
08.01.2019, 15:55
Nein das geht (noch) nicht. Die darunterlegende XMLRPC Library beherrscht weder die Möglichkeit sich via https noch via basic authentifizierung gegen einen XmlRpc server zu authentifizieren/verbinden. Wie aber schon angedeutet steht das bereits auf der TODO liste, hat jedoch eine geringe Priorität da nicht ganz so dringend/wichtig. Es wird aber dran gearbeitet!
Danke für die Information. ;--)

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: Mittels TCL an der XML-RPC API authentifizieren

Beitrag von jmaus » 08.01.2019, 15:59

Kein Problem. Wenn es allerdings um das oben genannte Skript zum auslesen des DutyCycle geht so sollte dieser Skript direkt auf der CCU ausgeführt trotzdem zum erfolg führen:

Code: Alles auswählen

!# dutycycle.fn 0.4
string stderr;
string stdout;
system.Exec("/bin/sh -c '" # 'echo "load tclrpc.so; puts [xmlrpc http://127.0.0.1:32001/ listBidcosInterfaces ]" | tclsh' # "'", &stdout, &stderr);
WriteLine(stdout);
Man beachte hierbei die Portänderung auf Port "32001" der auf der CCU selbst verfügbar ist und immer ohne authentifizierung und https angesprochen werden kann.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

foxriver76
Beiträge: 18
Registriert: 20.04.2018, 12:40
Hat sich bedankt: 1 Mal

Re: Mittels TCL an der XML-RPC API authentifizieren

Beitrag von foxriver76 » 08.01.2019, 16:01

jmaus hat geschrieben:
08.01.2019, 15:59
Kein Problem. Wenn es allerdings um das oben genannte Skript zum auslesen des DutyCycle geht so sollte dieser Skript direkt auf der CCU ausgeführt trotzdem zum erfolg führen:

Code: Alles auswählen

!# dutycycle.fn 0.4
string stderr;
string stdout;
system.Exec("/bin/sh -c '" # 'echo "load tclrpc.so; puts [xmlrpc http://127.0.0.1:32001/ listBidcosInterfaces ]" | tclsh' # "'", &stdout, &stderr);
WriteLine(stdout);
Man beachte hierbei die Portänderung auf Port "32001" der auf der CCU selbst verfügbar ist und immer ohne authentifizierung und https angesprochen werden kann.
Perfekt, genau so was habe ich gesucht. Works like a charme. ;-)

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“