[omniORB] OmniORB 4.1.4 bidirectional GIOP fails

Duncan Grisby duncan at grisby.org
Tue Jun 1 14:11:02 BST 2010


On Tue, 2010-06-01 at 02:04 -0700, mbazs123 wrote:

[...
> Why is this:
> omniORB: Accepted connection from giop:tcp:192.168.0.143:1982 because of
> this rule: "* unix,tcp,ssl,bidir"
> 
> and this
> 
> omniORB: Receive bidir IIOP service context: ( 192.168.0.143:1980 )
> 
> have different ports (1982 vs. 1980)? And after all why does omniorb want to
> connect to the 'bad' port (1980)?

1980 is the port the JacORB side is listening on as a server. It is the
address stored in object references coming from JacORB, and thus the
address the server should use for callbacks to your client if
bidirectional is not in use.

The way bidirectional GIOP works is that the client sends a message
saying that whenever the server makes an invocation on an object
reference with the specified endpoint details (in this case
192.168.0.143:1980), the call should instead go through the incoming
connection (in this case port 1982). To avoid a security issue where a
client can hijack calls intended for a completely different server, the
only object references that are candidates for bidirectional calls are
ones that have passed through the connection in question.

So, the question is why your object reference was not handled correctly.
How did the server get the callback reference?  One guess is that it was
passed as a string, rather than as an object reference, meaning that
omniORB did not know the reference came through the connection. Could
that be it?

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list