GridTalk.de
phpGridServer - Problem mit Inventory per web abrufen - Druckversion

+- GridTalk.de (https://www.gridtalk.de)
+-- Forum: Showcase (https://www.gridtalk.de/forumdisplay.php?fid=5)
+--- Forum: Projektvorstellung (https://www.gridtalk.de/forumdisplay.php?fid=33)
+---- Forum: Abgeschlossene oder nicht mehr aktuelle Projekte (https://www.gridtalk.de/forumdisplay.php?fid=80)
+----- Forum: Projekt ArribaSim (https://www.gridtalk.de/forumdisplay.php?fid=59)
+----- Thema: phpGridServer - Problem mit Inventory per web abrufen (/showthread.php?tid=2108)



phpGridServer - Problem mit Inventory per web abrufen - MichelleArgus - 06.05.2016

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


RE: phpGridServer - Problem mit Inventory per web abrufen - MichelleArgus - 07.05.2016

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


RE: phpGridServer - Problem mit Inventory per web abrufen - MichelleArgus - 07.05.2016

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