[ome-devel] Using omero.gateway.Gateway for sudo-connections
Christian Carsten Sachs
c.sachs at fz-juelich.de
Fri Apr 15 12:17:37 BST 2016
Hi Dominik,
thanks for the fast response!
I was playing around with these options but so far had no luck. Attached
a whole minimal (non)working example:
<<<
Logger logger = new SimpleLogger();
Gateway gateway = new Gateway(logger);
LoginCredentials ADMIN_CREDENTIALS = new LoginCredentials();
ADMIN_CREDENTIALS.getServer().setHostname("hostname");
ADMIN_CREDENTIALS.getUser().setUsername("admin");
ADMIN_CREDENTIALS.getUser().setPassword("password");
ExperimenterData adminUser = gateway.connect(ADMIN_CREDENTIALS);
SecurityContext adminCtx = new SecurityContext(adminUser.getGroupId());
ExperimenterData user =
gateway.getFacility(AdminFacility.class).lookupExperimenter(adminCtx,
"normalUserName");
SecurityContext ctx = new SecurityContext(user.getGroupId());
// with or without that line
//ctx = adminCtx;
ctx.setExperimenter(user);
ctx.sudo();
for(DatasetData d :
gateway.getFacility(BrowseFacility.class).getDatasets(ctx)) {
System.out.println(d.getName());
}
>>>
This yields
-! 4/15/16 13:12:15:171 warning: main: null - createSession retry: 1
-! 4/15/16 13:12:20:186 warning: main: null - createSession retry: 2
Could not load hierarchy
omero.gateway.exception.DSOutOfServiceException: Could not derive connector
at omero.gateway.Gateway.getConnector(Gateway.java:1301)
at omero.gateway.Gateway.getPojosService(Gateway.java:493)
at
omero.gateway.facility.BrowseFacility.getDatasets(BrowseFacility.java:457)
...
(both when I try to set the new experimenter to adminCtx or create a new
ctx and set it ...)
Am I doing something wrong?
Thanks a lot,
best regards,
Christian Sachs
On 2016-04-15 12:58, Dominik Lindner (Staff) wrote:
> Hi Christian,
>
> it should work when you set the user via SecurityContext.setExperimenter() and set the sudo flag via SecurityContext.sudo().
> Then operations using this SecurityContext will be performed in the user context.
>
> I’ll have to check if we have a working code example in the docs somewhere.
>
> Regards,
> Dominik
>
>
>> On 15 Apr 2016, at 11:47, Christian Carsten Sachs <c.sachs at fz-juelich.de> wrote:
>>
>> Hello,
>>
>> I'd like to connect to OMERO via Java using a sudo connection, i.e.
>> login as an admin user, and then perform actions as another user.
>>
>> While there is example code at
>> https://github.com/openmicroscopy/openmicroscopy/blob/master/examples/OmeroClients/sudo.java
>> the code 'manually' establishes a connection, while the current
>> developer documentation urges to use the omero.gateway.Gateway class to
>> manage the connection (as far as I read, this is the modern and
>> recommended way).
>>
>> Is there any way to use omero.gateway.Gateway for a sudo connection?
>>
>> I played around with something like this,
>>
>> adminUser = gateway.connect(ADMIN_CREDENTIALS);
>>
>> adminCtx = new SecurityContext(adminUser.getGroupId());
>>
>> user =
>> gateway.getFacility(AdminFacility.class).lookupExperimenter(adminCtx,
>> "normalUserName");
>>
>> ctx = new SecurityContext(user.getGroupId());
>>
>> but using ctx lateron fails; I assume the necessary services are not
>> properly started/connected, what gateway would normally do upon login;
>> unfortunately I don't seem to find a way to force the gateway object to
>> do this lateron for another user ...
>>
>> I looked around a bit and have some ideas how it might be done manually
>> ... within omero.gateway.Gateway, but unfortunately as the necessary
>> variables appear private I can't really access that from outside code.
>>
>> Best regards,
>> Christian Sachs
>>
>>
>> ------------------------------------------------------------------------------------------------
>> ------------------------------------------------------------------------------------------------
>> Forschungszentrum Juelich GmbH
>> 52425 Juelich
>> Sitz der Gesellschaft: Juelich
>> Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
>> Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
>> Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
>> Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
>> Prof. Dr. Sebastian M. Schmidt
>> ------------------------------------------------------------------------------------------------
>> ------------------------------------------------------------------------------------------------
>>
>> _______________________________________________
>> ome-devel mailing list
>> ome-devel at lists.openmicroscopy.org.uk
>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
>
>
> The University of Dundee is a registered Scottish Charity, No: SC015096
> _______________________________________________
> ome-devel mailing list
> ome-devel at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
>
More information about the ome-devel
mailing list