[omniORB] Securing a Name Service

Duncan Grisby dgrisby@uk.research.att.com
Fri, 29 Jun 2001 16:34:12 +0100


On Friday 29 June, John D. Heintz wrote:

> Last question (and I'm sorry if it's been discussed already): Can I
> do this from Python and what magic (insPOA?) do I use to enable INS
> corbaloc and corbaname to work?

It's not especially feasible to make extensions to omniNames with
Python. You could certainly implement an extended naming service from
scratch with Python, but you probably don't want to do that.

It's tempting to try to make a Python proxy to the Naming service, so
only the proxy is available to outside users. The problem with this is
that the Naming service consists of a whole bunch of objects. It would
be quite hard to keep track of proxying all the various objects
involved. It could be done with some object id tricks and a servant
locator (a default servant would be better, but it would require
POACurrent support which isn't in omniORB 3 -- it's in the omniORB 4
preview).

Basically, the idea is that whenever you need to return a proxied
object reference, you use the real object reference IOR as the object
id within the proxying POA. You don't activate an object to go with
it, so when a request for that objref comes in, the servant locator
(ideally default servant) can look at the object id, turn it into the
real object reference, and invoke the operation. This is actually a
great idea for a student project...

It's probably easier to modify the C++ omniNames implementation.

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --