本文整理汇总了Python中twisted.conch.avatar.ConchUser._connectTo方法的典型用法代码示例。如果您正苦于以下问题:Python ConchUser._connectTo方法的具体用法?Python ConchUser._connectTo怎么用?Python ConchUser._connectTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类twisted.conch.avatar.ConchUser
的用法示例。
在下文中一共展示了ConchUser._connectTo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: requestAvatar
# 需要导入模块: from twisted.conch.avatar import ConchUser [as 别名]
# 或者: from twisted.conch.avatar.ConchUser import _connectTo [as 别名]
def requestAvatar(self, username, mind, *interfaces):
""""
The connection has already been authenticated at this point. Our job
is to return some objects representing the logged in user.
`username' is also known as the Avatar ID in `twisted.cred' terminology.
"""
try:
# treat username as an OTP and attempt
transport, protocol = self.tickets.pop(username)
# reset routing ticket since it is one-time only.
ticket = tickets.newTicket()
self.tickets[ticket] = (transport, protocol)
log.msg("Reset routing ticket from %s to %s" % (username, ticket,))
u = ConchUser()
# Add a custom field to indicate that this connection
# is going to be connected (routed) using this ticket.
u._connectTo = (transport, protocol)
u.factory = self.factory
u.options = self.factory.options
return IConchUser, u, lambda:None
except KeyError:
log.msg('Username %r not recognized as access ticket. Connecting to public AMP subsystem only!' % (username,))
# logged in user gets access to AMP subsystem only. No shells.
u = ConchUser()
u.factory = self.factory
u.options = self.factory.options
u.channelLookup['session'] = AMPSession
return IConchUser, u, lambda:None