def test_meta_single(create_request): request = create_request( {"X-Forwarded-For": "177.139.233.139, 198.84.193.157, 198.84.193.158"} ) result = get_client_ip(request) assert result == ("177.139.233.139", True)
def test_meta_proxy_trusted_ips(create_request): request = create_request( { "X-Forwarded-For": "3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb" } ) result = get_client_ip(request, proxy_trusted_ips=["74dc::02bb"]) assert result == ("3ffe:1900:4545:3:200:f8ff:fe21:67cf", True)
def test_meta_proxy_trusted_ips_proxy_count_less_error(create_request): request = create_request( {"X-Forwarded-For": "3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02bb"} ) result = get_client_ip( request, proxy_count=2, proxy_trusted_ips=["74dc::02bb"] ) assert result == (None, False)
def test_meta_proxy_trusted_ips_proxy_count_more_error(create_request): request = create_request( {"X-Forwarded-For": "177.139.233.139, 198.84.193.157, 198.84.193.158"} ) result = get_client_ip( request, proxy_count=1, proxy_trusted_ips=["198.84.193.158"] ) assert result == (None, False)
def request_ip(request: Request): """ Retrieves the ip address of the request. :param request: Sanic request. """ ip, routable = get_client_ip(request) return ip if ip is not None else '0.0.0.0'
def test_meta_error_only(create_request): request = create_request( { "X-Forwarded-For": "unknown, 177.139.233.139, 198.84.193.157, 198.84.193.158" } ) result = get_client_ip(request) assert result == (None, False)
def test_meta_proxy_trusted_ips_proxy_count(create_request): request = create_request( {"X-Forwarded-For": "177.139.233.139, 198.84.193.157, 198.84.193.158"} ) result = get_client_ip( request, proxy_count=2, proxy_trusted_ips=["198.84.193.158"] ) assert result == ("177.139.233.139", True)
def test_meta_error_only(create_request): request = create_request( { "Forwarded-For": "unknown, 3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb" } ) result = get_client_ip(request) assert result == (None, False)
def test_meta_proxy_order_right_most(create_request): request = create_request( { "X-Forwarded-For": "3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb" } ) result = get_client_ip(request, proxy_order="right-most") assert result == ("74dc::02bb", True)
def test_meta_singleton_proxy_count_private(create_request): request = create_request( { "X-Forwarded-For": "::1", "X-Real-IP": "3ffe:1900:4545:3:200:f8ff:fe21:67cf", } ) result = get_client_ip(request, proxy_count=1) assert result == (None, False)
def test_meta_error_first(create_request): request = create_request( { "X-Forwarded-For": "unknown, 177.139.233.139, 198.84.193.157, 198.84.193.158", "Forwarded-For": "177.139.233.138, 198.84.193.157, 198.84.193.158", } ) result = get_client_ip(request) assert result == ("177.139.233.138", True)
def test_meta_singleton_private_fallback(create_request): request = create_request( { "X-Forwarded-For": "::1", "X-Real-IP": "3ffe:1900:4545:3:200:f8ff:fe21:67cf", } ) result = get_client_ip(request) assert result == ("3ffe:1900:4545:3:200:f8ff:fe21:67cf", True)
def test_meta_error_first(create_request): request = create_request( { "X-Forwarded-For": "unknown, 3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb", "Forwarded-For": "3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb", } ) result = get_client_ip(request) assert result == ("3ffe:1900:4545:3:200:f8ff:fe21:67cf", True)
def test_meta_multi(create_request): request = create_request( { "X-Forwarded-For": "3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb", "Via": "74dc::02bc", } ) result = get_client_ip(request) assert result == ("3ffe:1900:4545:3:200:f8ff:fe21:67cf", True)
def test_request_header_order_specific(create_request): request = create_request( { "X-Real-IP": "192.168.1.1", "Via": "177.139.233.139", "X-Forwarded-For": "177.139.233.139, 198.84.193.157, 198.84.193.158", } ) ip = get_client_ip(request, request_header_order=["X-Forwarded-For"]) assert ip == ("177.139.233.139", True)
def test_meta_multi_precedence_order(create_request): request = create_request( { "Forwarded-For": "177.139.233.138, 198.84.193.157, 198.84.193.158", "X-Forwarded-For": "177.139.233.139, 198.84.193.157, 198.84.193.158", "X-Cluster-Client-IP": "177.139.233.133", } ) result = get_client_ip(request) assert result == ("177.139.233.139", True)
def test_meta_multi_precedence_invalid_first(create_request): request = create_request( { "X-Forwarded-For": "unknown, 10.0.0.1, 10.0.0.2", "X-Cluster-Client-IP": "177.139.233.138, 198.84.193.157, 198.84.193.158", "True-Client-IP": "177.139.233.133", } ) result = get_client_ip(request) assert result == ("177.139.233.138", True)
def test_meta_multi_precedence_invalid_first(create_request): request = create_request( { "X-Forwarded-For": "unknown, 2001:db8:, ::1", "Forwarded-For": "3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb", "Via": "74dc::02bc", } ) result = get_client_ip(request) assert result == ("3ffe:1900:4545:3:200:f8ff:fe21:67cf", True)
def test_request_header_order_multiple(create_request): request = create_request( { "X-Forwarded-For": "177.139.233.139, 198.84.193.157, 198.84.193.158", "Forwarded-For": "177.139.233.138, 198.84.193.157, 198.84.193.158", "Via": "177.139.233.133", } ) ip = get_client_ip( request, request_header_order=["Forwarded-For", "X-Forwarded-For"] ) assert ip == ("177.139.233.138", True)
def test_meta_proxy_trusted_ips_proxy_count_more_error_ignore_fallback( create_request ): request = create_request( { "X-Forwarded-For": "3ffe:1900:4545:3:200:f8ff:fe21:67cf, 74dc::02ba, 74dc::02bb", "X-Real-IP": "74dc::02bb", } ) result = get_client_ip( request, proxy_count=1, proxy_trusted_ips=["74dc::02bb"] ) assert result == (None, False)
async def login(self, request, *args, **kwargs): """Logs in the user into this application - Receive and parse get request - Verify that the user is valid on the service - Go into AWS RDS and fetch user details and verify - Return success or unauthorized - end Arguments: request {object} -- the query parameters passed into this function Returns: object -- response from this endpoint """ request_body = request.body body_params = {} if request_body != b'': body_params = json.loads(request_body) self.logger.info( 'Received user login request: {params}'.format(params=body_params)) username = request.json.get("username", None) password = request.json.get("password", None) if not username or not password: raise exceptions.AuthenticationFailed( "Missing username or password.") try: user = self.service.login(username, password) except LookupError as error: self.logger.error('Error Occurred: {error}'.format(error=error)) raise exceptions.AuthenticationFailed( "You are not authorized to login.") if user is None: raise exceptions.AuthenticationFailed( "You are not authorized to login.") last_login_time = datetime.datetime.now( ) #.strftime("%Y-%m-%d %H:%M:%S") # pylint: disable=unused-variable,invalid-name ip, routable = get_client_ip(request) if ip is not None: # update the ip_address here for user pass return user
def remote_addr(self): if not hasattr(self, "_remote_addr"): proxy_count = None proxy_trusted_ips = None request_header_order = None if self.app and self.app.config: proxy_count = getattr( self.app.config, "IPWARE_PROXY_COUNT", None ) proxy_trusted_ips = getattr( self.app.config, "IPWARE_PROXY_TRUSTED_IPS", None ) request_header_order = getattr( self.app.config, "IPWARE_REQUEST_HEADER_ORDER", None ) ip, _ = get_client_ip( self, proxy_count=proxy_count, proxy_trusted_ips=proxy_trusted_ips, request_header_order=request_header_order, ) self._remote_addr = ip return self._remote_addr
def test_best_matched_ip_private_precedence(create_request): request = create_request({"X-Real-IP": "127.0.0.1", "Via": "192.168.1.1"}) ip = get_client_ip(request) assert ip == ("192.168.1.1", False)
def test_meta_singleton_private_fallback(create_request): request = create_request( {"X-Forwarded-For": "10.0.0.0", "X-Real-IP": "177.139.233.139"} ) result = get_client_ip(request) assert result == ("177.139.233.139", True)
def test_meta_singleton_proxy_count_private(create_request): request = create_request( {"X-Forwarded-For": "10.0.0.0", "X-Real-IP": "177.139.233.139"} ) result = get_client_ip(request, proxy_count=1) assert result == (None, False)
def test_best_matched_ip_public(create_request): request = create_request( {"X-Real-IP": "177.31.233.122", "Via": "177.31.233.133"} ) ip = get_client_ip(request) assert ip == ("177.31.233.122", True)
def test_100_block_private(create_request): request = create_request({"X-Real-IP": "100.76.0.9"}) ip = get_client_ip(request) assert ip == ("100.76.0.9", False)
def test_meta_proxy_order_right_most(create_request): request = create_request( {"X-Forwarded-For": "177.139.233.139, 198.84.193.157, 198.84.193.158"} ) result = get_client_ip(request, proxy_order="right-most") assert result == ("198.84.193.158", True)
def test_100_high_range_public(create_request): request = create_request({"X-Real-IP": "100.128.0.9"}) ip = get_client_ip(request) assert ip == ("100.128.0.9", True)
def test_meta_none(create_request): request = create_request() ip, routable = get_client_ip(request) assert ip is None assert routable is False