On 08:46 pm, sank.dan...@gmail.com wrote:
In other words, you don't have to log in on the *root* pb object. Loginis just a PB method call. You can have a second portal wrapping a different realm
handing out different avatars and you can log in to that portal the
second time.

I look in t.s.pb to find out what methods are called during log in.
PBServerFactory is adapted to a pb root object by _PortalRoot which returns
a _PortalWrapper from rootObject(self, broker).

_PortalWrapper has a remote_login method with the following code

def remote_login(self, username):
       """
       Start of username/password login.
       """
       c = challenge()
return c, _PortalAuthChallenger(self.portal, self.broker, username,
c)

I'm confused by this because I expect that attempting to return an instance
of _PortalAuthChallenger from the remote_login method should fail (ie.
insecureJelly). How does this work?

_PortalAuthChallenger is a Referenceable. Any Referenceable is allowed by default.

See twisted.spread.jelly.SecurityOptions, in particular the `basicTypes` attribute and the `allowBasicTypes` method.

Jean-Paul

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to