MCPcopy Create free account
hub / github.com/apache/arrow / HeaderAuthServerMiddlewareFactory

Class HeaderAuthServerMiddlewareFactory

python/pyarrow/tests/test_flight.py:679–704  ·  view source on GitHub ↗

Validates incoming username and password.

Source from the content-addressed store, hash-verified

677
678
679class HeaderAuthServerMiddlewareFactory(ServerMiddlewareFactory):
680 """Validates incoming username and password."""
681
682 def start_call(self, info, headers):
683 auth_header = case_insensitive_header_lookup(
684 headers,
685 'Authorization'
686 )
687 values = auth_header[0].split(' ')
688 token = ''
689 error_message = 'Invalid credentials'
690
691 if values[0] == 'Basic':
692 decoded = base64.b64decode(values[1])
693 pair = decoded.decode("utf-8").split(':')
694 if not (pair[0] == 'test' and pair[1] == 'password'):
695 raise flight.FlightUnauthenticatedError(error_message)
696 token = 'token1234'
697 elif values[0] == 'Bearer':
698 token = values[1]
699 if not token == 'token1234':
700 raise flight.FlightUnauthenticatedError(error_message)
701 else:
702 raise flight.FlightUnauthenticatedError(error_message)
703
704 return HeaderAuthServerMiddleware(token)
705
706
707class HeaderAuthServerMiddleware(ServerMiddleware):

Calls

no outgoing calls