2010-05-20 5 views
1

Supposons que j'ai une URL comme:Les appels REST sont-ils uniquement disponibles pour les applications locales?

http://example.com/get-users

qui retourne un objet JSON de tous les utilisateurs. Mais, je ne veux pas que n'importe qui (ou n'importe quel bots) soit capable d'aller à cette URL pour aller chercher cette information. Je veux qu'il ne réponde qu'aux appels d'autres modules locaux du même site Web.

Comment pourrais-je mettre en œuvre quelque chose comme ça?

+1

Vous effectuez des requêtes HTTP entre des modules de code situés sur le même site Web? Sont-ils dans le même processus? Le protocole HTTP ne semble-t-il pas excessif pour ce scénario? –

Répondre

1

Comparez le REMOTE_ADDR à une liste blanche d'adresses IP approuvées. Si ce n'est pas dans cette liste, ne renvoyez rien, fermez le socket ou renvoyez une erreur HTTP.

-1

Utilisez-vous Spring? Avez-vous envisagé d'ajouter un bean filter dans votre contexte pour autoriser uniquement les requêtes HTTP de votre site?

+0

hey! Non, je le fais en django (python) et pas en java. – colorfulgrayscale