Re: [vz-dev] jsonp support für vz

2013-04-07 Diskussionsfäden Jakob Hirsch
On 07.04.2013 13:23, Andreas Goetz wrote:
> Jetzt fehlt nur noch ein eleganter weg, zusätzliche MWs in der
> Konfiguration anzugeben.

In der Konfiguration von was?


Re: [vz-dev] jsonp support für vz

2013-04-07 Diskussionsfäden Andreas Goetz

Hallo Jakob,

danke für den Hinweis! padding=? funktioniert tatsächlich auch (hatte 
ich in der Doku anders verstanden)- damit ist alles Paletti, danke! 
Jetzt fehlt nur noch ein eleganter weg, zusätzliche MWs in der 
Konfiguration anzugeben.


Viele Grüsse,
Andreas

On 07.04.2013 02:33, Jakob Hirsch wrote:

On 04.04.2013 19:14, Andreas Goetz wrote:

Das hab ich glatt übersehen :/, content-type ist definition falsch. Ich
fände dennoch "callback" statt "padding" als Parameter schöner- dann
liesse sich nämlich auch jQuery getJSON nutzen. Mit der jetzigen Lösung

Wenn ich die Beschreibung von getJSON richtig verstanden habe (es ist
leider nicht explizit beschrieben), funktioniert das mit jedem
Parameter, der vor "=?" steht, in unserem Fall also "padding=?".
Ich finde "padding" als Parametername auch nicht so prall (auch wenn es
technisch korrekt ist), aber ohne Not ändert man sowas nicht.


muss man zwangsweise auf $.ajax ausweichen um die notwendigen Parameter
reinzufummeln. Aber ja- es ist möglich ;)

Also der Unterschied zwischen
$.getJSON(url, data, success)
und
   $.ajax({dataType: "json", url: url, data: data, success: success});
ist jetzt nicht soo riesig...





Re: [vz-dev] jsonp support für vz

2013-04-06 Diskussionsfäden Jakob Hirsch
On 04.04.2013 19:14, Andreas Goetz wrote:
> Das hab ich glatt übersehen :/, content-type ist definition falsch. Ich
> fände dennoch "callback" statt "padding" als Parameter schöner- dann
> liesse sich nämlich auch jQuery getJSON nutzen. Mit der jetzigen Lösung

Wenn ich die Beschreibung von getJSON richtig verstanden habe (es ist
leider nicht explizit beschrieben), funktioniert das mit jedem
Parameter, der vor "=?" steht, in unserem Fall also "padding=?".
Ich finde "padding" als Parametername auch nicht so prall (auch wenn es
technisch korrekt ist), aber ohne Not ändert man sowas nicht.

> muss man zwangsweise auf $.ajax ausweichen um die notwendigen Parameter
> reinzufummeln. Aber ja- es ist möglich ;)

Also der Unterschied zwischen
   $.getJSON(url, data, success)
und
  $.ajax({dataType: "json", url: url, data: data, success: success});
ist jetzt nicht soo riesig...


Re: [vz-dev] jsonp support für vz

2013-04-04 Diskussionsfäden Andreas Goetz

On 04.04.2013 14:52, Jakob Hirsch wrote:

Hi,

Andreas Goetz, 03.04.2013 08:46:

ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw
zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch
json möglich.

interessante sache irgendwie...
es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen
middlewares abbonieren zu koennen - funktionierte das bisher garnicht?!

Kann nicht. Allerdings habe ich auch keinen Platz in rigendeiner Config
gefunden wo ich eine zweite MW hätte eintragen können- für's durch JS
hacken fehlte mir bisher die Zeit. Wäre aber eine spannende Aufgabe auch
daran ein wenig zu basteln.

Das ist jetzt auch schon möglich. Kann man einfach selbst testen, indem
man in seinem Frontend einen der öffentlichen Kanäle von
demo.volkszaehler.org abonniert.


 https://github.com/volkszaehler/volkszaehler.org/pull/44

Ich paste einfach mal meinen Kommentar von dort:

JSONP wird bereits über den Parameter "padding" unterstützt, siehe
http://wiki.volkszaehler.org/development/api/reference?s[]=padding#json
Dieser wird auch schon vom frontend benutzt, wenn man eine andere als
die lokale middleware ausgewählt hat.

Allerdings belässt padding den Content-type auf application/json, das
sollte wohl wie bei dir application/javascript sein, das sollten wir
noch fixen.

Das hab ich glatt übersehen :/, content-type ist definition falsch. Ich 
fände dennoch "callback" statt "padding" als Parameter schöner- dann 
liesse sich nämlich auch jQuery getJSON nutzen. Mit der jetzigen Lösung 
muss man zwangsweise auf $.ajax ausweichen um die notwendigen Parameter 
reinzufummeln. Aber ja- es ist möglich ;)


Danke und Gruss,
Andreas


Re: [vz-dev] jsonp support für vz

2013-04-04 Diskussionsfäden Jakob Hirsch
Hi,

Andreas Goetz, 03.04.2013 08:46:
>>> ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw
>>> zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch
>>> json möglich.
>> interessante sache irgendwie...
>> es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen
>> middlewares abbonieren zu koennen - funktionierte das bisher garnicht?!
> Kann nicht. Allerdings habe ich auch keinen Platz in rigendeiner Config
> gefunden wo ich eine zweite MW hätte eintragen können- für's durch JS
> hacken fehlte mir bisher die Zeit. Wäre aber eine spannende Aufgabe auch
> daran ein wenig zu basteln.

Das ist jetzt auch schon möglich. Kann man einfach selbst testen, indem
man in seinem Frontend einen der öffentlichen Kanäle von
demo.volkszaehler.org abonniert.

> https://github.com/volkszaehler/volkszaehler.org/pull/44

Ich paste einfach mal meinen Kommentar von dort:

JSONP wird bereits über den Parameter "padding" unterstützt, siehe
http://wiki.volkszaehler.org/development/api/reference?s[]=padding#json
Dieser wird auch schon vom frontend benutzt, wenn man eine andere als
die lokale middleware ausgewählt hat.

Allerdings belässt padding den Content-type auf application/json, das
sollte wohl wie bei dir application/javascript sein, das sollten wir
noch fixen.

> In der jetzigen Version ist das allerdings ein potentielles
> Sicherhitsrisiko- es lassen sich ja nicht nur Daten abfragen sondern
> auch löschen. Was fehlt ist m.E. eine Konfigurationsoption mit der jsonp
> standardmäßig erstmal deaktiviert ist.

Warum sollte JSONP für die middleware ein Sicherheitsrisiko sein? Wenn
man die UUID kennt und die middleware erreichen kann, kann man das auch
so über die API machen.

Was ich an JSONP skurril finde (zumindest soweit ich das verstanden
habe): Wegen der same-origin-policy kann man nicht einfach JSON
benutzen. Um das zu umgehen, lädt man sich javascript-code von einem
fremden Server!?! Ich habe zumindest nirgendwo gesehen, daß geprüft
wird, ob der Server tatsächlich sowas wie "callback_methode({daten...})"
zurückgibt, oder nicht beliebigen anderen javascript-code, der z.B. die
cookies ausliest und für alle Kanäle ein delete macht.




Re: [vz-dev] jsonp support für vz

2013-04-02 Diskussionsfäden Andreas Goetz

Hallo Thorben,

On 03.04.2013 08:03, Thorben Thuermer wrote:

On Mon, 01 Apr 2013 17:33:46 +0200
Andreas Goetz  wrote:

Hallo Zusammen,

ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw
zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch
json möglich.

interessante sache irgendwie...
es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen
middlewares abbonieren zu koennen - funktionierte das bisher garnicht?!


Kann nicht. Allerdings habe ich auch keinen Platz in rigendeiner Config 
gefunden wo ich eine zweite MW hätte eintragen können- für's durch JS 
hacken fehlte mir bisher die Zeit. Wäre aber eine spannende Aufgabe auch 
daran ein wenig zu basteln.



(fuer die die die problematik nicht kennen: http://en.wikipedia.org/wiki/JSONP )


Wenn Interesse besteht hätte ich hier einen Patch mit dem
sich JsonP darstellen lässt- es fehlt nur noch eine
Default-Konfigurationsoption um das Verhalten standardmäßig zu deaktivieren.

warum schickst du den patch nicht einfach?
oder noch besser, einen pull-request auf github.

Da war ich schneller ;)

https://github.com/volkszaehler/volkszaehler.org/pull/44

In der jetzigen Version ist das allerdings ein potentielles 
Sicherhitsrisiko- es lassen sich ja nicht nur Daten abfragen sondern 
auch löschen. Was fehlt ist m.E. eine Konfigurationsoption mit der jsonp 
standardmäßig erstmal deaktiviert ist.



interessant waehre noch die technische umsetzung...
ein zusaetzlicher parameter um das format anzugeben,
und den namen der callback funktion?
Sind nur 3 Zeilen- siehe patch. Aufgerufen wird es- wenn man jQuery 
einsetzt- indem einfach callback=? an die Anfrage gehängt wird, jQ 
bastelt daraus dann einen eindeutigen Funktionsnahmen den es auf dem 
Rückweg auch aufruft und die Daten rausholt.



ich denke das "standard"-rueckgabeformat der middleware zu aendern
waehre keine gute idee, zumal es auch andere clients als das standard-frontend
gibt.
Nicht nötig- es wird ja über den Request gesteuert, der Client kann also 
entscheiden.



Frohe Ostern,
Andreas

- Thorben


Viele Grüße,
Andreas


Re: [vz-dev] jsonp support für vz

2013-04-02 Diskussionsfäden Thorben Thuermer
On Mon, 01 Apr 2013 17:33:46 +0200
Andreas Goetz  wrote:
> Hallo Zusammen,
> 
> ich hatte den Wunsch, remote (d.h. per iphone-app) auf die mw 
> zuzugreifen. Aus Sicherheitsgründen ist das nur per JsonP, nicht jedoch 
> json möglich. 

interessante sache irgendwie...
es ist doch eigentlich im frontend vorgesehen, kanaele von verschiedenen
middlewares abbonieren zu koennen - funktionierte das bisher garnicht?!

(fuer die die die problematik nicht kennen: http://en.wikipedia.org/wiki/JSONP )

> Wenn Interesse besteht hätte ich hier einen Patch mit dem 
> sich JsonP darstellen lässt- es fehlt nur noch eine 
> Default-Konfigurationsoption um das Verhalten standardmäßig zu deaktivieren.

warum schickst du den patch nicht einfach?
oder noch besser, einen pull-request auf github.

interessant waehre noch die technische umsetzung...
ein zusaetzlicher parameter um das format anzugeben,
und den namen der callback funktion?

ich denke das "standard"-rueckgabeformat der middleware zu aendern
waehre keine gute idee, zumal es auch andere clients als das standard-frontend
gibt.

> Frohe Ostern,
> Andreas

- Thorben