Here are the examples of the python api crossbar.twisted.endpoint.extract_peer_certificate taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
0
Source : session.py
with MIT License
from fbla-competitive-events
with MIT License
from fbla-competitive-events
def onOpen(self, transport):
"""
Implements :func:`autobahn.wamp.interfaces.ITransportHandler.onOpen`
"""
# this is a WAMP transport instance
self._transport = transport
# WampLongPollResourceSession instance has no attribute '_transport_info'
if not hasattr(self._transport, '_transport_info'):
self._transport._transport_info = {}
# transport configuration
if hasattr(self._transport, 'factory') and hasattr(self._transport.factory, '_config'):
self._transport_config = self._transport.factory._config
else:
self._transport_config = {}
# a dict with x509 TLS client certificate information (if the client provided a cert)
# constructed from information from the Twisted stream transport underlying the WAMP transport
client_cert = None
# eg LongPoll transports lack underlying Twisted stream transport, since LongPoll is
# implemented at the Twisted Web layer. But we should nevertheless be able to
# extract the HTTP client cert! < = FIXME
if hasattr(self._transport, 'transport'):
client_cert = extract_peer_certificate(self._transport.transport)
if client_cert:
self._transport._transport_info[u'client_cert'] = client_cert
self.log.debug("Client connecting with TLS certificate {client_cert}", client_cert=client_cert)
# forward the transport channel ID (if any) on transport details
channel_id = None
if hasattr(self._transport, 'get_channel_id'):
# channel ID isn't implemented for LongPolL!
channel_id = self._transport.get_channel_id()
if channel_id:
self._transport._transport_info[u'channel_id'] = binascii.b2a_hex(channel_id).decode('ascii')
self.log.debug("Client session connected - transport: {transport_info}", transport_info=self._transport._transport_info)
# basic session information
self._pending_session_id = None
self._realm = None
self._session_id = None
self._session_roles = None
self._session_details = None
# session authentication information
self._pending_auth = None
self._authid = None
self._authrole = None
self._authmethod = None
self._authprovider = None
self._authextra = None
# the service session to be used eg for WAMP metaevents
self._service_session = None
def onMessage(self, msg):