Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
phpGridServer - Problem mit Inventory per web abrufen
#1
Servus,

Ich hab ein kleines Problemchen mit Inventar per web auslesen.

Technisch habe ich folgende situation:

Server A
- Virtual server mit phpGridServer
- Virtual server mit einem Webprojekt

Server B mit einem Webprojekt

Ich möchte per php Inventar meines Avatar auslesen. Ich kann von vom Webprojekt auf Server B alle Inventarabfragen ausführen, keine Probleme. Mit der identischen Funktion auf Server A bekomme ich leeren Inventarinhalt als Rückmeldung (folder + items) mit ausnahme von GETROOTFOLDER. Inworld funktioniert alles, aber Sim und Viewer sind auch nicht auf Server A. Ich kann die identische Abfrage von Server A zu einem Anderen Grid, z.B. OSGrid ausführen und auch hier funktioniert alles.

php Beispiel:

PHP-Code:
$ch curl_init('http://grid.meindomein.world/xinventory');
 
curl_setopt($chCURLOPT_POSTTRUE);
curl_setopt($chCURLOPT_HTTPHEADER, array("Content-Type:application/x-www-form-urlencoded"));
curl_setopt($chCURLOPT_POSTFIELDS"METHOD=GETFOLDERCONTENT&PRINCIPAL=avatar_uuid&FOLDER=folder_uuid");
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
 
$responce curl_exec($ch);
$info curl_getinfo($ch);
curl_close($ch);

print_r($responce); 

grid.meinedomain.world, avatar_uuid und folder_uuid sind platzhalter


Inventar service gibt als Rückmeldung folgende leeren Inhalt zurück:
Code:
<?xml version="1.0" encoding="utf-8"?><ServerResponse><FOLDERS type="List"></FOLDERS><ITEMS type="List"></ITEMS></ServerResponse>


Hab zwar GETROOTFOLDER mit den anderen Funktionen grob verglichen, hab aber keine unterschiede im Aufbau feststellen können. Hat jemand vielleicht eine Idee?


Gruß
Michelle
Zitieren
#2
Hab mal ein bissle tiefer gegraben und folgende Fehlermeldung rausspucken lassen für die Inventarfunktion GETFOLDERCONTENT:


Code:
Stack trace:
#0 /var/www/xxx/lib/permissions/InventoryService/HG1_0.php(90): MySQLHGTravelingDataService->getHGTravelingDataByAgentUUIDAndNotHomeURI('1d74ed4d-d922-4...', 'http://testgrid...')
#1 /var/www/xxx/lib/permissions/InventoryService/HG1_0.php(134): HG1_0InventoryService->checkLoggedIn('1d74ed4d-d922-4...')
#2 /var/www/xxx/lib/services/hypergrid/InventoryGuardService.php(99): HG1_0InventoryService->getFoldersInFolder('1d74ed4d-d922-4...', Object(UUID))
#3 [internal function]: HGInventoryGuardService->getFoldersInFolder('1d74ed4d-d922-4...', Object(UUID))
#4 /var/www/xxx/lib/accesscontrol/wrappers/AccessControlWrapper.php(68): call_user_func_array(Array, Array)
#5 /var/www/xxx/xinventory/rpc_GETFOLDERCONTENT.php(57): AccessControlWrapper->__call('getFoldersInFol...', Array)
#6 /var/www/xxx/xinventory/rpc_GETFOLDERCONTENT.php(57): AccessControlWrapper->getFoldersInFolder('1d74ed4d-d922-4...', Object(UUID))
#7 /var/www/xxx/rest_xinventory.php(118): require_once('/var/www/xxx...')
#8 {main}

Bitte nicht die Zeilennummern vertrauen... ist halt ein Testgrid.

Habe die Quelle des Problems schon bis lib/connectors/db/mysql/HGTravelingDataService.php verfolgt, "UUID::CheckWithException($uuid);" in der Funktion getHGTravelingDataByAgentUUIDAndNotHomeURI scheint zu meckern... weiter bin ich aber noch nicht gekommen. Mein verdacht ist, dass irgendwo die IP adresse vom Grid und meiner php abfrage nicht dieselbe sein kann/soll/darf ...

Morgen ist noch ein Tag
Zitieren
#3
Beim phpGridServer ist per Default eine ACL aktiv.
Alle Zugriffe bis auf GETROOTFOLDER, GETFOLDERFORTYPE, ADDITEM und ADDFOLDER werden gesperrt so lange sich der Nutzer nicht im HG befindet. Die gesperrten Methoden sind während dieser Zeit nur für am Grid angeschlossene Sims erreichbar.

OSG ist weitestgehend ungeschützt. Daher funktioniert dort alles.

Gruss Freaky.
Die ganze Welt ist ein Irrenhaus und wir sind nur die Kandidaten  ;)
Zitieren
#4
Danke Freaky, sowas in der Richtung ist mir heut Nacht auch eingefallen. Da Server B die Regionen hostet war der Zugriff zu den Funktionen erlaubt, macht jetzt Sin. Wie sieht es mit den HG funktionen aus, hat man da Zugriff auf die anderen Funktionen oder wird z.B. geprüft ob der Avatar online ist?

Ausm stehgreif, ist so eine Zugriffssperre auch bei anderen Services eingebaut, z.B. Gruppen, Firends usw.?

Langfristig muss ich da wahrscheinlich eine liste von IP adresse per Admin panel freigeben können... aber dazu werd ich irgend wann mal einen Fork machen. Frontend oder Funktionen von 3. Anbieter sind ja nicht zwingend direkt am Gridserver oder einer Sim angeschlossen.

Gruß
Michelle
Zitieren
#5
Alles was reine grid-interne Funktionen sind werden unter der ACL betrachtet und rein gridbezogen aktiviert.

Dienste, die sowohl HG als auch grid-intern sind, sind mit einer ACL versehen, die Aktionen die immer möglich sein müssen, wie z.B. Inventar-Items hinzufügen erlaubt und alles andere bei nicht im HG befindlichen Avas sperrt.

Eine Sim die Items hinzufügt benutzt ausschliesslich GETFOLDERFORTYPE, GETROOTFOLDER, ADDITEM und ADDFOLDER. Daher sind diese grundsätzlich offen für HG.

Ich habe bei dereos.org auch ein entsprechendes Freigabemodul was IP basiert ist.

Ursprünglich war es rein in einer php Datei angegeben. Kürzlich hab ich ein entsprechendes Teil gebaut, dass via Datenbank arbeitet.

einen vollständigen Fork brauchst nicht mal. Nur ein Addon.

schau dir mal ConfigurableIPAccessControl.php und ConfigurableIPMethodAccessControl.php im Verzeichnis lib/accesscontrol/providers an.

Die Config dazu ist grösstenteils in config.acl.php enthalten.

Gruss Freaky
Die ganze Welt ist ein Irrenhaus und wir sind nur die Kandidaten  ;)
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Mesh-Problem Arriba Dorena Verne 11 536 06.08.2017, 08:31
Letzter Beitrag: Dorena Verne
  Arriba Sim - Build Problem Bartholomew Gallacher 7 3.690 19.12.2014, 13:00
Letzter Beitrag: Bogus Curry
  Problem mit dem Löschen von einer Region Bogus Curry 12 6.369 12.10.2014, 04:57
Letzter Beitrag: Bogus Curry
  [FAQ]Fragen zum PHPGridServer Bogus Curry 4 1.448 22.07.2014, 23:37
Letzter Beitrag: Bogus Curry
  Problem mit tpen von einer Region zu anderen im HG Bogus Curry 26 11.344 08.07.2014, 11:08
Letzter Beitrag: Bogus Curry

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste