Items purchased on Hypergrid never delivered in inventory...

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Items purchased on Hypergrid never delivered in inventory...

justincc
> On 13/02/15 13:07, Luca Villani wrote:
>> Il 13/02/2015 13:52, Ai Austin ha scritto:
>>
>>
>>>> All looks fine, except hypergrid purchasing: purchased items are never
>>>> delivered in inventory.
>>>
>>> Luca... can you see any (red) errors reported on the OpenSim.exe console
>>> for the region where the Hypergrid visitor is obtaining the item that is
>>> not coming into inventory... at the time they try to take the item?
>>
>> No error at all, in both robust and simulator console log.
>> But after five minutes after sending my e-mail (as usual) I'd found the
>> problem: authentication on Robust server.
>>
>> Setting authentication in both Robust.ini and OpenSim.ini
>>
>>      AuthType = "BasicHttpAuthentication"
>>      HttpAuthUsername = "an_uncommon_user_name"
>>      HttpAuthPassword = "a_very_robust_password"
>>
>> has this side effect: no hypergrid purchased items are delivered in My
>> Suitcase folder of the user's inventory.
>>
>> Removing authentication configuration restore usual simulator behaviour.
>>
>>
>>
>
> If I were to guess, I would say that the auth details above are being applied to the HGSuitcaseInventoryService when they should not (this is the service exposed by your home grid to foreign grids so that suitcase inventory operations can be carried out [1]).
>
> From reading the config, the Robust.HG.ini has the line
>
> HGInventoryServiceConnector = "HGInventoryService@8002/OpenSim.Server.Handlers.dll:XInventoryInConnector"
>
> which is triggering instantiation of the XInventoryInConnector which later loads the suitcase service with the section
>
> [HGInventoryService]
>     ; For the InventoryServiceInConnector
>     LocalServiceModule    = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService"
>
> Unfortunately, XInventoryInConector sets up authentication (because it's also the one used for ordinary inventory access).  I believe this is a bug as foreign grids are not going to know auth details.
>
> Are you in a position to test this with master code?  If so I can knock up a solution but I don't know when I would get time to test for myself.  I'd also ideally like Crista to comment in case I'm barking up the wrong tree.

So, I finally had a chance to poke around a little bit more and it looks like both the HGAssetService and
HGInventoryService are picking up authentication details when they shouldn't as they are public services that need to be
accessible from foreign grids.

So in git master 441d77b5 I configured an authentication override for both of these in Robust.HG.ini.example.  Before
the override I couldn't rez in osgrid's Sandbox Plaza with an avatar from a home grid with AuthType detials set in
[Network].  With the override I can.

For those who want to set AuthType for other services but already have a Robust.HG.ini, the settings to add are

[HGAssetService]
AuthType = None

[HGInventoryService]
AuthType = None

Setting up service authentication adds another layer of security in case one forgets to firewall off the private service
port (or some later misconfiguration exposes it).  Therefore I would highly recommend it for any grid installation that
is exposed to the Internet.

--
Justin Clark-Casey (justincc)
OSVW Consulting
http://justincc.org
http://twitter.com/justincc
_______________________________________________
Opensim-users mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users