1and1 mutualisé : CORS, Header et HTTP_AUTHORIZATION

Fermé
damienfa - 21 mars 2016 à 05:05
yeskulav Messages postés 1 Date d'inscription lundi 19 septembre 2016 Statut Membre Dernière intervention 19 septembre 2016 - 19 sept. 2016 à 21:18
Bonjour,

Je rencontre quelques problèmes sur la configuration Apache de mon serveur mutualisé chez 1and1.

Nous travaillons sur un prototype d'API REST. Cette API doit être accessible (en Ajax) par diverses applications.

Le script ".htaccess" est bien pris en compte car les redirections (RewriteEngine... RewriteRules...) fonctionnent correctement. Par exemple, les deux urls suivantes sont bien interprétées et renvoient le bon résultat :
http://api.test.com/welcome
http://api.test.com/login
etc.

Voici le fichier en question :

Options +FollowSymLinks
Options -MultiViews
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "Origin, Content-Type, Accept, Authorization, X-Requested-With"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE"
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

Mon problème :

Certaines lignes de cet .htaccess semblent ne pas être prises en compte... Tout me laisse à penser que ce n'est pas un problème dans mon script et c'est pour cela que je vous contacte.

1) Les lignes Header :

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "Origin, Content-Type, Accept, Authorization, X-Requested-With"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE"

Ces 3 lignes ne semblent avoir aucun effet !!! Une requête telle que
curl -i http://api.test.com/welcome

devrait me renvoyer quelque chose comme :

HTTP/1.1 200 OK
Date: Mon, 21 Mar 2016 23:22:07 GMT
Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Requested-With
Access-Control-Allow-Methods: PUT, GET, POST, DELETE
[...]
Content-Length: 47
Content-Type: application/json

Mais les deux lignes "Access-Control-Allow-..." n'apparaissent jamais quand c'est un serveur 1&1 qui produit la réponse...

2) Les Http_Authorization :

Une autre ligne semble être sans effet dans mon fichier .htaccess :

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

En effet, quand j'envoie une requête POST classique au serveur, avec un token passé en "Authorization: Bearer ...", le serveur ne trouve pas le token.

curl -X POST -i http://api.test.com/test-token -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJ0b2tlbl92YWxpZF9oYXNoIjoiaWlDMzI0SEM3MiIsInN1YiI6MiwiaXNzIjoiaHR0cDpcL1wvYXBpLnlvcHJvY2Vzcy5jb21cL1wvbG9naW4iLCJpYXQiOiIxNDU4NTIwMzgyIiwiZXhwIjoiMTQ1OTEyMTU4MiIsIm5iZiI6IjE0NTg1MjAzODIiLCJqdGkiOiI5MjMzMGRhYzI4MTcyYzc4YjczOTY4ZjVhMDExMDdlZCJ9.NDE3NWM0MDIzNDk3OTNhMTU1YTRkYmY0OWRhNzU2ZjljMjE2MGJlOWUxZjQ4MTE2N2NiOWVlNTY4ZDkwYjI1MQ"


Avec la requête POST si dessus, le serveur me répond "Token absent" alors qu'il devrait me dire "token invalide" : il ne trouve pas le token passé. Sur les autres serveurs sur lesquels je teste cette API, la réponse est correcte. Pas chez 1&1...
Au passage, je précise que les autres serveurs me renvoient aussi "Vary: Authorization" à cette requête. Mais pas 1&1.

Quelqu'un voit il se qu'il peut se passer ?

J'ai du mal à croire que cela provienne d'une erreur dans la RewriteRule car elle fonctionne partout ailleurs dans la même configuration...

Bien entendu, le service technique de 1&1 m'a répondu au téléphone qu'il ne sont pas suffisamment compétents pour me comprendre mon problème.
Les personnes compétentes (les admins) ne peuvent être contactés que par e-mail : mais ils ne m'ont jamais répondu (6 emails, pour ce même problème depuis 2 mois)...

2 réponses

susanyu205 Messages postés 11 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 22 juillet 2016 17
21 mars 2016 à 05:07
Voilà vraiment un gros problème. Je suis désolé, je peux vous aider.
0
Comment peux-tu m'aider ?
0
yeskulav Messages postés 1 Date d'inscription lundi 19 septembre 2016 Statut Membre Dernière intervention 19 septembre 2016
19 sept. 2016 à 21:18
As tu trouvé une solution à ce problème ?
Ca m'intéresse.
0