general: log Publik-Caller header (#83111) #390
|
@ -474,16 +474,18 @@ class GenericEndpointView(GenericConnectorMixin, SingleObjectMixin, View):
|
|||
connector_name, endpoint_name = kwargs['connector'], kwargs['endpoint']
|
||||
url = request.get_full_path()
|
||||
|
||||
logger_extra = {
|
||||
'request': request,
|
||||
'connector': connector_name,
|
||||
'connector_endpoint': endpoint_name,
|
||||
'connector_endpoint_url': url,
|
||||
'publik_caller_url': request.headers.get('Publik-Caller-URL', ''),
|
||||
|
||||
}
|
||||
if request.method.lower() not in self.endpoint.endpoint_info.methods:
|
||||
logger_extra['connector_endpoint_method'] = self._allowed_methods()
|
||||
self.connector.logger.warning(
|
||||
'endpoint %s %s (=> 405)' % (request.method, url),
|
||||
extra={
|
||||
'request': request,
|
||||
'connector': connector_name,
|
||||
'connector_endpoint': endpoint_name,
|
||||
'connector_endpoint_method': self._allowed_methods(),
|
||||
'connector_endpoint_url': url,
|
||||
},
|
||||
extra=logger_extra,
|
||||
)
|
||||
return self.http_method_not_allowed(request, *args, **kwargs)
|
||||
|
||||
|
@ -496,16 +498,15 @@ class GenericEndpointView(GenericConnectorMixin, SingleObjectMixin, View):
|
|||
except UnicodeDecodeError:
|
||||
payload = '<BINARY PAYLOAD>'
|
||||
|
||||
logger_extra.update(
|
||||
{
|
||||
'connector_endpoint_method': request.method,
|
||||
'connector_payload': payload,
|
||||
}
|
||||
)
|
||||
self.connector.logger.info(
|
||||
'endpoint %s %s (%r) ' % (request.method, url, payload),
|
||||
extra={
|
||||
'request': request,
|
||||
'connector': connector_name,
|
||||
'connector_endpoint': endpoint_name,
|
||||
'connector_endpoint_method': request.method,
|
||||
'connector_endpoint_url': url,
|
||||
'connector_payload': payload,
|
||||
},
|
||||
extra=logger_extra,
|
||||
)
|
||||
|
||||
if not self.check_perms(request):
|
||||
|
|
|
@ -110,6 +110,7 @@ def test_proxy_logger(mocked_get, caplog, app, arcgis):
|
|||
'template': '{{ attributes.NOM }}',
|
||||
'id_template': '{{ attributes.NUMERO }}',
|
||||
},
|
||||
headers={'Publik-Caller-URL': 'https://wcs.invalid/backoffice/management/foo/1/'},
|
||||
smihai
commented
Plutôt Plutôt `Publik-Caller-URL` ?
|
||||
status=200,
|
||||
)
|
||||
|
||||
|
@ -122,6 +123,7 @@ def test_proxy_logger(mocked_get, caplog, app, arcgis):
|
|||
assert log.extra['connector'] == 'arcgis'
|
||||
assert log.extra['connector_endpoint'] == 'mapservice-query'
|
||||
assert log.extra['connector_endpoint_method'] == 'GET'
|
||||
assert log.extra['publik_caller_url'] == 'https://wcs.invalid/backoffice/management/foo/1/'
|
||||
assert '/arcgis/test/mapservice-query?' in log.extra['connector_endpoint_url']
|
||||
|
||||
# Resource Generic Logger
|
||||
|
|
Loading…
Reference in New Issue
Je voulais faire pop plutôt qu'un get en pensant au connecteur proxy sauf c'est un objet immutable.
Mais en fait tout va bien le connecteur proxy ne laisse pas passer n'importe quoi : https://git.entrouvert.org/entrouvert/passerelle/src/branch/main/passerelle/apps/proxy/models.py#L26
Comme on comprend ici qu'on s'attend à une URL dans Publik-Caller, appelons-le clairement Publik-Caller-URL et le monde sera plus beau.