我遇到一种情况,当从某个URL发送特定请求时,我需要调用某个 Controller 。
假设我的应用程序运行在:http://www.app.com/listencontroller
当请求发送到该URL,并且该请求是从http://www.itsme.com发送时,我希望能够处理该请求,否则我不希望对此做任何事情。
如何以一种漂亮的方式完成此操作,即 Controller 中没有硬编码的URL?
最佳答案
您是说浏览器必须来自itsme.com域,还是请求必须来自位于itsme.com页面上的链接?
第一种要求您在request.remoteAddr上进行反向dns查找。
后者需要查看传入请求的Referer header 。这不是防弹的,因为它很容易被欺骗。另外,在某些情况下,它根本不会发送,因此您的里程可能会有所不同。
无论哪种情况,Grails过滤器或 Controller 拦截器都可能是最优雅的解决方案。
关于url - 接受来自Grails中某些URL的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966490/