crossbario / crossbar

Crossbar.io - WAMP application router
https://crossbar.io/
Other
2.05k stars 274 forks source link

Transport details #2003

Closed oberstet closed 2 years ago

oberstet commented 2 years ago

CI gets suck in endless loop

 2022-04-26T15:43:33+0200   File "/opt/hostedtoolcache/Python/3.9.2/x64/lib/python3.9/site-packages/crossbar/worker/rlink.py", line 582, in onChallenge
2022-04-26T15:43:33+0200     challenge, self._rlink_manager._controller._transport.get_channel_id())
2022-04-26T15:43:33+0200 builtins.AttributeError: 'WorkerServerProtocol' object has no attribute 'get_channel_id'

https://github.com/crossbario/crossbar/runs/6176299434?check_suite_focus=true


(cpy39_1) (base) oberstet@intel-nuci7:~/scm/crossbario/crossbar-examples/authentication$ find ~/scm/crossbario/crossbar/crossbar -name "*.py" -exec grep -Hi "get_channel_id" {} \;
/home/oberstet/scm/crossbario/crossbar/crossbar/bridge/mqtt/wamp.py:    def get_channel_id(self, channel_id_type='tls-unique'):
/home/oberstet/scm/crossbario/crossbar/crossbar/worker/proxy.py:        if hasattr(self.transport, 'get_channel_id'):
/home/oberstet/scm/crossbario/crossbar/crossbar/worker/proxy.py:            channel_id = self.transport.get_channel_id()
/home/oberstet/scm/crossbario/crossbar/crossbar/worker/rlink.py:                challenge, self._rlink_manager._controller._transport.get_channel_id())
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:        transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:        transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:        session0._transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:        session0._transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:        session1._transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:        session2._transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:                sess._transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_broker.py:                self._transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_router.py:        transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/test/test_router.py:        transport.get_channel_id = mock.MagicMock(return_value=b'deadbeef')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/protocol.py:            #     tls_channel_id = self.get_channel_id('tls-unique')
/home/oberstet/scm/crossbario/crossbar/crossbar/router/session.py:        # if hasattr(self._transport, 'get_channel_id'):
/home/oberstet/scm/crossbario/crossbar/crossbar/router/session.py:        #     channel_id = self._transport.get_channel_id()
oberstet commented 2 years ago
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Controller  38432] <crossbar.node.node.Node.boot>::NODE_BOOT_COMPLETE[node_id="intel-nuci7-38432"]
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] <crossbar.worker.router.RouterController.start_router_realm_link> Router link rlink000 starting on realm realm001 ..
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] RLinkLocalSession.onConnect()
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] Router attached new session to realm "realm1" (session=8753512032714909, authid="F4QF-NEN3-S4NR-FXCK-R3T9-KYAL", authrole="trusted", authmethod="None", authprovider="None") <crossbar.router.router.Router.attach>
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] setup invocation forwarding between <crossbar.worker.rlink.RLinkLocalSession object at 0x7f2d78a1bb50> and <crossbar.worker.rlink.RLinkRemoteSession object at 0x7f2d78a1bbb0> (exclude_authid=None, exclude_authrole=None)
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] 8753512032714909: call forwarding setup done
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38449] Client session connected, - transport_info=
2022-04-26T18:21:56+0200 {'peer': 'tcp4:127.0.0.1:35404', 'protocol': 'wamp.2.cbor', 'type': 'rawsocket'}
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] RLinkRemoteSession.join(realm="realm1", authmethods=['cryptosign'], authid="None", authrole="None", authextra={'pubkey': '2ecd87909589f02938bd0d9e3a57489339c17509b13d8044974a7f47ba99f355', 'trustroot': None, 'challenge': None, 'channel_binding': 'tls-unique'})
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38449] <crossbar.router.auth.cryptosign.PendingAuthCryptosign.hello>::hello(realm="realm1", details.authid="None", details.authrole="None")
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38449] WAMP-cryptosign CHANNEL BINDING requested: channel_binding=tls-unique, channel_id=None
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38449] <crossbar.router.auth.cryptosign.PendingAuthCryptosign.hello>::_compute_challenge(channel_binding="tls-unique")[channel_id=None] -> extra=
2022-04-26T18:21:56+0200 {'challenge': 'aae65a93e193454f249728e4b5d7f677bd5af3a523ecc45bf678fdcefe153871',
2022-04-26T18:21:56+0200  'channel_binding': 'tls-unique'}
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] RLinkRemoteSession.onUserError(): "Authentication failed"
2022-04-26T18:21:56+0200 Traceback (most recent call last):
2022-04-26T18:21:56+0200   File "/home/oberstet/scm/crossbario/crossbar/.tox/functests-cb/lib/python3.9/site-packages/autobahn/twisted/rawsocket.py", line 142, in stringReceived
2022-04-26T18:21:56+0200     self._session.onMessage(msg)
2022-04-26T18:21:56+0200   File "/home/oberstet/scm/crossbario/crossbar/crossbar/worker/rlink.py", line 56, in onMessage
2022-04-26T18:21:56+0200     return super(BridgeSession, self).onMessage(msg)
2022-04-26T18:21:56+0200   File "/home/oberstet/scm/crossbario/crossbar/.tox/functests-cb/lib/python3.9/site-packages/autobahn/wamp/protocol.py", line 664, in onMessage
2022-04-26T18:21:56+0200     d = txaio.as_future(self.onChallenge, challenge)
2022-04-26T18:21:56+0200   File "/home/oberstet/scm/crossbario/crossbar/.tox/functests-cb/lib/python3.9/site-packages/txaio/tx.py", line 369, in as_future
2022-04-26T18:21:56+0200     return maybeDeferred(fun, *args, **kwargs)
2022-04-26T18:21:56+0200 --- <exception caught here> ---
2022-04-26T18:21:56+0200   File "/home/oberstet/scm/crossbario/crossbar/.tox/functests-cb/lib/python3.9/site-packages/twisted/internet/defer.py", line 190, in maybeDeferred
2022-04-26T18:21:56+0200     result = f(*args, **kwargs)
2022-04-26T18:21:56+0200   File "/home/oberstet/scm/crossbario/crossbar/crossbar/worker/rlink.py", line 583, in onChallenge
2022-04-26T18:21:56+0200     signed_challenge = self._rlink_manager._controller.sign_challenge(challenge, channel_id, channel_id_type)
2022-04-26T18:21:56+0200   File "/home/oberstet/scm/crossbario/crossbar/.tox/functests-cb/lib/python3.9/site-packages/twisted/internet/defer.py", line 1894, in unwindGenerator
2022-04-26T18:21:56+0200     gen = f(*args, **kwargs)
2022-04-26T18:21:56+0200 builtins.TypeError: sign_challenge() takes 3 positional arguments but 4 were given
2022-04-26T18:21:56+0200 
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] RLinkRemoteSession.onLeave(): rlink remote session left! (realm="realm1", authid="None", authrole="None", session=None, details=CloseDetails(reason=<wamp.error.cannot_authenticate>, message='sign_challenge() takes 3 positional arguments but 4 were given')) <crossbar.worker.rlink.RLinkLocalSession.onLeave>
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] session closed with reason wamp.error.cannot_authenticate [sign_challenge() takes 3 positional arguments but 4 were given]
2022-04-26T18:21:56+0200 2022-04-26T18:21:56+0200 [Router      38450] Scheduling retry 1 to connect <twisted.internet.endpoints.TCP4ClientEndpoint object at 0x7f2d78a1be20> in 1.7018298296934498 seconds.
oberstet commented 2 years ago
Test results:
=============

Di 26. Apr 23:15:17 CEST 2022

Crossbar.io WAMP Authentication Test Summary:
=============================================

wamp-cookie-file-good:                       OK
wamp-cookie-file-bad:                        OK
wamp-cookie-db-good:                         OK
wamp-cookie-db-bad:                          OK
wamp-cookie-rtrpxy-db-good:                  OK
wamp-cookie-rtrpxy-db-bad:                   OK
wamp-cryptosign-static-tx-good:              OK
wamp-cryptosign-static-tx-bad:               OK
wamp-cryptosign-static-tx-noauthid-good:     OK
wamp-cryptosign-static-tx-noauthid-bad:      OK
wamp-cryptosign-static-aio-good:             OK
wamp-cryptosign-static-aio-bad:              OK
wamp-cryptosign-static-aio-noauthid-good:    OK
wamp-cryptosign-static-aio-noauthid-bad:     OK
wamp-cryptosign-tls-tx-cnlbin-none-good:     OK
wamp-cryptosign-tls-tx-cnlbin-none-bad:      OK
wamp-cryptosign-tls-tx-cnlbin-unique-good:   OK
wamp-cryptosign-tls-tx-cnlbin-unique-bad:    OK
wamp-scram-tx-good:                          OK
wamp-scram-tx-bad:                           OK
wamp-ticket-static-good:                     OK
wamp-ticket-static-bad:                      OK
wamp-ticket-dynamic-good:                    OK
wamp-ticket-dynamic-bad:                     OK
wamp-ticket-function-good:                   OK
wamp-ticket-function-bad:                    OK
wamp-tls-static-cnlbind-unique-good:          FAIL
wamp-tls-static-cnlbind-unique-bad:          OK
wamp-cra-static-good:                        OK
wamp-cra-static-bad:                         OK
wamp-cra-dynamic-good:                       OK
wamp-cra-dynamic-bad:                        OK
wamp-cra-function-good:                      OK
wamp-cra-function-bad:                       OK

as

2022-04-26T23:40:16+0200 [Router      67655] <autobahn.twisted.websocket.WebSocketAdapterProtocol.connectionMade> connection established for peer="tcp4:127.0.0.1:55322", transport_details=
{'channel_framing': 'websocket',
 'channel_id': {'tls-unique': b'\xaa\x12\xf8\xa9\xb0w\xb51\xdc4\x86\xb0'
                              b'\xb4\x83\xd3\x8d\x0c\xc6>{\x99\xe3c\x8f'
                              b'\x153Z\xe3\xd3\xa4\x8f}'},
 'channel_serializer': None,
 'channel_type': 'tcp-tls',
 'http_cbtid': None,
 'http_headers_received': None,
 'http_headers_sent': None,
 'is_secure': True,
 'is_server': True,
 'own': None,
 'own_fd': -1,
 'own_pid': 67655,
 'own_tid': 67655,
 'peer': 'tcp4:127.0.0.1:55322',
 'peer_cert': {'expired': False,
               'extensions': [{'critical': False,
                               'name': 'basicConstraints',
                               'value': 'CA:FALSE'},
                              {'critical': False,
                               'name': 'nsCertType',
                               'value': 'SSL Client, S/MIME'},
                              {'critical': False,
                               'name': 'nsComment',
                               'value': 'OpenSSL Generated Client Certificate'},
                              {'critical': False,
                               'name': 'subjectKeyIdentifier',
                               'value': '20:C8:AD:37:6D:63:37:A2:CE:5B:21:A8:59:89:86:53:11:5B:BE:A6'},
                              {'critical': False,
                               'name': 'authorityKeyIdentifier',
                               'value': 'keyid:A7:5B:96:7C:69:C0:FF:BC:BE:86:AF:A0:F9:15:39:26:5E:E8:FC:5D\n'},
                              {'critical': True,
                               'name': 'keyUsage',
                               'value': 'Digital Signature, Non Repudiation, '
                                        'Key Encipherment'},
                              {'critical': False,
                               'name': 'extendedKeyUsage',
                               'value': 'TLS Web Client Authentication, E-mail '
                                        'Protection'}],
               'hash': 1451967802,
               'issuer': {'c': 'DE',
                          'cn': 'intermediate_ca',
                          'o': 'Crossbar',
                          'st': 'Bavaria'},
               'md5': '1A:5D:45:AD:5B:76:F7:B0:16:BD:42:B9:E7:A8:3B:FD',
               'not_after': '20230423131630Z',
               'not_before': '20220413131630Z',
               'serial': 4097,
               'sha1': 'E0:01:DC:37:BB:50:79:DC:E7:A7:CF:E9:CE:08:21:D6:F8:31:C3:5F',
               'sha256': '40:B7:1C:B6:34:11:CD:02:27:CC:4B:00:3F:BF:BB:89:90:77:6E:48:5F:A7:20:E7:9A:45:66:E5:CA:96:C3:60',
               'signature_algorithm': 'sha256WithRSAEncryption',
               'subject': {'c': 'DE',
                           'cn': 'client_0',
                           'l': 'Erlangen',
                           'o': 'Crossbar',
                           'st': 'Bavaria'},
               'version': 2},
 'websocket_extensions_in_use': None,
 'websocket_protocol': None}
2022-04-26T23:40:16+0200 [Router      67655] <autobahn.websocket.protocol.WebSocketServerProtocol.processHandshake> found end of HTTP request header at byte 397
2022-04-26T23:40:16+0200 [Router      67655] <crossbar.router.protocol.WampWebSocketServerProtocol.onConnect>(request={'extensions': [],
 'headers': {'cache-control': 'no-cache',
             'connection': 'Upgrade',
             'host': 'localhost:8080',
             'pragma': 'no-cache',
             'sec-websocket-key': '7ffQJYR75FrrJjEFl8/H+w==',
             'sec-websocket-protocol': 'wamp.2.cbor.batched,wamp.2.cbor,wamp.2.msgpack.batched,wamp.2.msgpack,wamp.2.ubjson.batched,wamp.2.ubjson,wamp.2.json.batched,wamp.2.json',
             'sec-websocket-version': '13',
             'upgrade': 'WebSocket',
             'user-agent': 'AutobahnPython/22.4.1.dev7'},
 'host': 'localhost',
 'origin': '',
 'params': {},
 'path': '/ws',
 'peer': 'tcp4:127.0.0.1:55322',
 'protocols': ['wamp.2.cbor.batched',
               'wamp.2.cbor',
               'wamp.2.msgpack.batched',
               'wamp.2.msgpack',
               'wamp.2.ubjson.batched',
               'wamp.2.ubjson',
               'wamp.2.json.batched',
               'wamp.2.json'],
 'version': 13})
2022-04-26T23:40:16+0200 [Router      67655] <crossbar.router.protocol.WampWebSocketServerProtocol.onConnect>: proceed with WebSocket opening handshake for WebSocket subprotocol "wamp.2.cbor.batched"
2022-04-26T23:40:16+0200 [Router      67655] Cookie tracking disabled on WebSocket connection <crossbar.router.protocol.WampWebSocketServerProtocol object at 0x7f45ca6d1790>
2022-04-26T23:40:16+0200 [Router      67655] Client session connected, - transport_info=
{'cbtid': None,
 'http_headers_received': {'cache-control': 'no-cache',
                           'connection': 'Upgrade',
                           'host': 'localhost:8080',
                           'pragma': 'no-cache',
                           'sec-websocket-key': '7ffQJYR75FrrJjEFl8/H+w==',
                           'sec-websocket-protocol': 'wamp.2.cbor.batched,wamp.2.cbor,wamp.2.msgpack.batched,wamp.2.msgpack,wamp.2.ubjson.batched,wamp.2.ubjson,wamp.2.json.batched,wamp.2.json',
                           'sec-websocket-version': '13',
                           'upgrade': 'WebSocket',
                           'user-agent': 'AutobahnPython/22.4.1.dev7'},
 'http_headers_sent': {},
 'peer': 'tcp4:127.0.0.1:55322',
 'protocol': 'wamp.2.cbor.batched',
 'type': 'websocket',
 'websocket_extensions_in_use': []}
2022-04-26T23:40:16+0200 [Container   67664] onConnect callback completed successfully with result=None
2022-04-26T23:40:16+0200 [Container   67664] session closed with reason wamp.error.not_authorized [client did not send a TLS client certificate]
2022-04-26T23:40:16+0200 [Controller  67645] Could not start node: Traceback (most recent call last):
--- <exception caught here> ---
  File "/home/oberstet/scm/crossbario/crossbar/crossbar/node/node.py", line 459, in start
    res = yield self.personality.Node.boot(self)
  File "/home/oberstet/scm/crossbario/crossbar/crossbar/node/node.py", line 613, in boot_from_config
    yield d
  File "/home/oberstet/scm/crossbario/crossbar/crossbar/node/node.py", line 582, in configure_worker
    yield config_fn(worker_logname, worker_id, worker)
  File "/home/oberstet/scm/crossbario/crossbar/crossbar/node/node.py", line 852, in _configure_native_worker_container
    yield self._controller.call('crossbar.worker.{}.start_component'.format(worker_id),
autobahn.wamp.exception.ApplicationError: ApplicationError(error=<wamp.error.not_authorized>, args=['client did not send a TLS client certificate'], kwargs={}, enc_algo=None, callee=None, callee_authid=None, callee_authrole=None, forward_for=None)
oberstet commented 2 years ago

finally, looks all good:

________________________________________________________________ summary ________________________________________________________________
  sphinx: commands succeeded
  flake8: commands succeeded
  mypy: commands succeeded
  yapf: commands succeeded
  bandit: commands succeeded
  py39-pinned-trial: commands succeeded
  py39-unpinned-trial: commands succeeded
  py39-abtrunk-trial: commands succeeded
  py39-examples: commands succeeded
  pytest: commands succeeded
  functests-cb: commands succeeded
  functests-cfc: commands succeeded
  py39-api-1: commands succeeded
  py39-cli-0: commands succeeded
  py39-cli-1: commands succeeded
  py39-cli-2: commands succeeded
  py39-cli-3: commands succeeded
  congratulations :)
(cpy39_1) (base) oberstet@intel-nuci7:~/scm/crossbario/crossbar$ 

________________________________________________________________ summary ________________________________________________________________
  flake8: commands succeeded
  coverage: commands succeeded
  sphinx: commands succeeded
SKIPPED:  py37-tw1910: InterpreterNotFound: python3.7
SKIPPED:  py37-tw203: InterpreterNotFound: python3.7
SKIPPED:  py37-tw221: InterpreterNotFound: python3.7
SKIPPED:  py37-twtrunk: InterpreterNotFound: python3.7
SKIPPED:  py37-asyncio: InterpreterNotFound: python3.7
  py38-tw1910: commands succeeded
  py38-tw203: commands succeeded
  py38-tw221: commands succeeded
  py38-twtrunk: commands succeeded
  py38-asyncio: commands succeeded
  py39-tw1910: commands succeeded
  py39-tw203: commands succeeded
  py39-tw221: commands succeeded
  py39-twtrunk: commands succeeded
  py39-asyncio: commands succeeded
SKIPPED:  py310-tw1910: InterpreterNotFound: python3.10
SKIPPED:  py310-tw203: InterpreterNotFound: python3.10
SKIPPED:  py310-tw221: InterpreterNotFound: python3.10
SKIPPED:  py310-twtrunk: InterpreterNotFound: python3.10
SKIPPED:  py310-asyncio: InterpreterNotFound: python3.10
SKIPPED:  pypy37-tw1910: InterpreterNotFound: pypy3.7
SKIPPED:  pypy37-tw203: InterpreterNotFound: pypy3.7
SKIPPED:  pypy37-tw221: InterpreterNotFound: pypy3.7
SKIPPED:  pypy37-twtrunk: InterpreterNotFound: pypy3.7
SKIPPED:  pypy37-asyncio: InterpreterNotFound: pypy3.7
SKIPPED:  pypy38-tw1910: InterpreterNotFound: pypy3.8
SKIPPED:  pypy38-tw203: InterpreterNotFound: pypy3.8
SKIPPED:  pypy38-tw221: InterpreterNotFound: pypy3.8
SKIPPED:  pypy38-twtrunk: InterpreterNotFound: pypy3.8
SKIPPED:  pypy38-asyncio: InterpreterNotFound: pypy3.8
  congratulations :)
(cpy39_1) (base) oberstet@intel-nuci7:~/scm/crossbario/autobahn-python$ 

Do 28. Apr 15:21:04 CEST 2022

Crossbar.io WAMP Authentication Test Summary:
=============================================

wamp-cookie-file-good:                       OK
wamp-cookie-file-bad:                        OK
wamp-cookie-db-good:                         OK
wamp-cookie-db-bad:                          OK
wamp-cookie-rtrpxy-db-good:                  OK
wamp-cookie-rtrpxy-db-bad:                   OK
wamp-cryptosign-static-tx-good:              OK
wamp-cryptosign-static-tx-bad:               OK
wamp-cryptosign-static-tx-noauthid-good:     OK
wamp-cryptosign-static-tx-noauthid-bad:      OK
wamp-cryptosign-static-aio-good:             OK
wamp-cryptosign-static-aio-bad:              OK
wamp-cryptosign-static-aio-noauthid-good:    OK
wamp-cryptosign-static-aio-noauthid-bad:     OK
wamp-cryptosign-tls-tx-cnlbin-none-good:     OK
wamp-cryptosign-tls-tx-cnlbin-none-bad:      OK
wamp-cryptosign-tls-tx-cnlbin-unique-good:   OK
wamp-cryptosign-tls-tx-cnlbin-unique-bad:    OK
wamp-scram-tx-good:                          OK
wamp-scram-tx-bad:                           OK
wamp-ticket-static-good:                     OK
wamp-ticket-static-bad:                      OK
wamp-ticket-dynamic-good:                    OK
wamp-ticket-dynamic-bad:                     OK
wamp-ticket-function-good:                   OK
wamp-ticket-function-bad:                    OK
wamp-tls-static-cnlbind-unique-good:         OK
wamp-tls-static-cnlbind-unique-bad:          OK
wamp-cra-static-good:                        OK
wamp-cra-static-bad:                         OK
wamp-cra-dynamic-good:                       OK
wamp-cra-dynamic-bad:                        OK
wamp-cra-function-good:                      OK
wamp-cra-function-bad:                       OK
(cpy39_1) (base) oberstet@intel-nuci7:~/scm/crossbario/crossbar-examples/authentication$