2011-11-01 4 views
3

J'ai une situation qui m'oblige à appeler un certain contrôleur lorsqu'une requête spécifique est envoyée depuis une certaine URL.Accepter les appels de certaines URL dans Grails

Disons que ma demande est en cours d'exécution sur: http://www.app.com/listencontroller

Lorsqu'une demande est envoyée à cette adresse, et la demande est envoyée à partir http://www.itsme.com, je veux être en mesure de traiter cette demande, sinon je ne veux pas faire quelque chose avec ça.

Comment cela peut-il être fait d'une manière jolie, c'est-à-dire sans URL codées en dur dans mon contrôleur?

Répondre

1

Voulez-vous dire que le navigateur doit provenir du domaine itsme.com, ou que la requête doit provenir d'un lien présent sur une page qui se trouve dans itsme.com?

La première nécessiterait que vous effectuiez une recherche DNS inverse sur request.remoteAddr.

Ce dernier entraîne l'examen de l'en-tête Referer de la demande entrante. Ce n'est pas à l'épreuve des balles, car il peut être facilement usurpé. En outre, dans certains cas, il ne sera pas envoyé du tout, de sorte que votre kilométrage peut varier. Dans les deux cas, un filtre Grails ou un intercepteur de contrôleur serait probablement la solution la plus élégante.

+0

vraiment ce que je suis à la recherche est un service qui appellera mon contrôleur (via l'URL itsme.com). J'envisageais de le faire avec un filtre, un intercepteur, ou dans le contrôleur (moche mais ... vous savez quoi que ce soit: P) Je me demandais juste s'il y avait une manière ordonnée et contrôlée de le faire. – marko

Questions connexes