comparison libervia/backend/plugins/plugin_comp_ap_gateway/http_server.py @ 4109:7067b0d73183

component AP gateway: fix AP media type in GET and POST requests headers
author Goffi <goffi@goffi.org>
date Thu, 06 Jul 2023 11:34:52 +0200
parents 58bbc100f13b
children 5f2d496c633f
comparison
equal deleted inserted replaced
4108:238e305f2306 4109:7067b0d73183
39 from libervia.backend.core.log import getLogger 39 from libervia.backend.core.log import getLogger
40 from libervia.backend.tools.common import date_utils, uri 40 from libervia.backend.tools.common import date_utils, uri
41 from libervia.backend.memory.sqla_mapping import SubscriptionState 41 from libervia.backend.memory.sqla_mapping import SubscriptionState
42 42
43 from .constants import ( 43 from .constants import (
44 NS_AP, MEDIA_TYPE_AP, CONTENT_TYPE_WEBFINGER, CONTENT_TYPE_AP, TYPE_ACTOR, TYPE_INBOX, 44 NS_AP, MEDIA_TYPE_AP, MEDIA_TYPE_AP_ALT, CONTENT_TYPE_WEBFINGER, CONTENT_TYPE_AP,
45 TYPE_SHARED_INBOX, TYPE_OUTBOX, TYPE_EVENT, AP_REQUEST_TYPES, PAGE_SIZE, 45 TYPE_ACTOR, TYPE_INBOX, TYPE_SHARED_INBOX, TYPE_OUTBOX, TYPE_EVENT, AP_REQUEST_TYPES,
46 ACTIVITY_TYPES_LOWER, ACTIVIY_NO_ACCOUNT_ALLOWED, SIGN_HEADERS, HS2019, SIGN_EXP, 46 PAGE_SIZE, ACTIVITY_TYPES_LOWER, ACTIVIY_NO_ACCOUNT_ALLOWED, SIGN_HEADERS, HS2019,
47 TYPE_FOLLOWERS, TYPE_FOLLOWING, TYPE_ITEM, TYPE_LIKE, TYPE_REACTION, ST_AP_CACHE 47 SIGN_EXP, TYPE_FOLLOWERS, TYPE_FOLLOWING, TYPE_ITEM, TYPE_LIKE, TYPE_REACTION,
48 ST_AP_CACHE
48 ) 49 )
49 from .regex import RE_SIG_PARAM 50 from .regex import RE_SIG_PARAM
50 51
51 52
52 log = getLogger(__name__) 53 log = getLogger(__name__)
966 ap_url = parse.urljoin( 967 ap_url = parse.urljoin(
967 f"https://{self.apg.public_url}", 968 f"https://{self.apg.public_url}",
968 path 969 path
969 ) 970 )
970 request_type, extra_args = self.apg.parse_apurl(ap_url) 971 request_type, extra_args = self.apg.parse_apurl(ap_url)
971 if ((MEDIA_TYPE_AP not in (request.getHeader("accept") or "") 972 header_accept = request.getHeader("accept") or ""
973 if ((MEDIA_TYPE_AP not in header_accept
974 and MEDIA_TYPE_AP_ALT not in header_accept
972 and request_type in self.apg.html_redirect)): 975 and request_type in self.apg.html_redirect)):
973 # this is not a AP request, and we have a redirections for it 976 # this is not a AP request, and we have a redirections for it
974 kw = {} 977 kw = {}
975 if extra_args: 978 if extra_args:
976 kw["jid"], kw["node"] = await self.apg.get_jid_and_node(extra_args[0]) 979 kw["jid"], kw["node"] = await self.apg.get_jid_and_node(extra_args[0])