connect( 'activitypub_inbox', '{gsactor_id<\d+>}/inbox', [Inbox::class, 'handle'], options: ['accept' => self::$accept_headers] ); return Event::next; } /** * Validate HTTP Accept headers * * @param null|array|string $accept * @param bool $strict Strict mode * * @throws \Exception when strict mode enabled * * @return bool */ public static function validateAcceptHeader(array|string|null $accept, bool $strict): bool { if (is_string($accept) && in_array($accept, self::$accept_headers) ) { return true; } elseif (is_array($accept) && count( array_intersect($accept, self::$accept_headers) ) ) { return true; } if (!$strict) { return false; } throw new Exception( sprintf( "HTTP Accept header error. Given: '%s'", $accept ) ); } }