Mercurial > libervia-backend
diff sat/plugins/plugin_comp_ap_gateway/http_server.py @ 3983:31c3d6652115
component AP gateway: ignore actor delection notifications:
When a `Delete` activity was received and the object was the emitting actor itself, the
signature checking was failing if the actor was unknown (due to the impossibility to
retrieve the actor public key, as it is no more accessible).
To avoid that, those notifications are ignored for now. In the future they should clean
the cache linked to this actor.
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 15 Nov 2022 18:15:16 +0100 |
parents | 74f7c10a48bc |
children | cd0943ceb326 |
line wrap: on
line diff
--- a/sat/plugins/plugin_comp_ap_gateway/http_server.py Tue Nov 15 18:10:33 2022 +0100 +++ b/sat/plugins/plugin_comp_ap_gateway/http_server.py Tue Nov 15 18:15:16 2022 +0100 @@ -1040,6 +1040,17 @@ request.finish() return try: + if data["type"] == "Delete" and data["actor"] == data["object"]: + # we don't handle actor deletion + request.setResponseCode(http.ACCEPTED) + log.debug(f"ignoring actor deletion ({data['actor']})") + # TODO: clean data in cache coming from this actor, maybe with a tombstone + request.finish() + return + except KeyError: + pass + + try: signing_actor = await self.checkSignature(request) except exceptions.EncryptionError as e: self.responseCode(