Bonjour,
Merci pour ce rapport, les trois points sont confirmés, reproduits ici et corrigés. Ils partaient tous du même bout de code et se cumulaient.
Pour le chemin : c'est bien PATH_INFO qui était lu, et il est vide dès que la réécriture d'URL de Joomla est active. L'aide à l'écran annonce pourtant l'adresse sans index.php, donc c'est le code qui avait tort, pas l'aide. Les deux adresses fonctionnent maintenant, avec ou sans réécriture, et cela vaut aussi pour l'adresse du point d'entrée MCP qui avait exactement la même limite.
Pour la clé : au delà de l'absence de repli, le tableau rendu par getallheaders() garde la casse envoyée par le client, et la lecture était faite sur la casse exacte "X-API-KEY". Un client envoyant "X-Api-Key" était donc refusé, ce que nous avons reproduit sur Apache, ce n'est donc pas propre à LiteSpeed. Toute casse est acceptée désormais, avec un repli sur $_SERVER quand getallheaders() n'existe pas. La comparaison se fait aussi à temps constant, et la clé n'est plus recopiée dans le journal.
Pour le SQL 1146 : la variable qui porte le nom de la table n'était affectée qu'à l'intérieur du bloc qui traite le paramètre de tri, et elle était utilisée en dehors. Sans paramètre "order" dans la requête, le nom de table partait vide. En passant ?order=une_colonne la requête aboutissait. C'est maintenant corrigé.
Un point sur votre chemin d'endpoint : il doit commencer par une barre oblique, /mon-endpoint et non mon-endpoint, sinon la comparaison échoue et vous obtenez un 404 même une fois le reste corrigé.
Téléchargez le paquet d'installation d'HikaShop sur notre site et installez-le sur le votre pour avoir les différents patchs.