我遇到一种情况,要求我在从某个网址发送特定请求时调用某个控制器。
假设我的应用程序正在运行:http://www.app.com/listencontroller
当请求发送到此URL并且请求从http://www.itsme.com发送时,我希望能够处理该请求,否则我不想对其执行任何操作。
如何以一种漂亮的方式完成,即我的控制器中没有硬编码的URL?
答案 0 :(得分:1)
您的意思是浏览器必须来自域名itsme.com,或者请求必须通过位于itsme.com的页面上的链接来发送?
第一个要求你在 request.remoteAddr 上进行反向dns查找。
后者需要查看传入请求的 Referer 标头。这不是防弹的,因为它很容易被欺骗。此外,在某些情况下,它根本不会发送,因此您的里程可能会有所不同。
在任何一种情况下,Grails过滤器或控制器拦截器都可能是最优雅的解决方案。
答案 1 :(得分:0)