我有一種情況,需要我在某個URL發送特定請求時調用某個控制器。接受來自Grails中某個URL的呼叫
比方說,我的應用程序運行:http://www.app.com/listencontroller
當一個請求被髮送到這個URL,並請求從http://www.itsme.com發送,我希望能夠處理該請求,否則我不想用它做任何事情。
這怎麼能用一種漂亮的方式完成,即我的控制器中沒有硬編碼的URL?
我有一種情況,需要我在某個URL發送特定請求時調用某個控制器。接受來自Grails中某個URL的呼叫
比方說,我的應用程序運行:http://www.app.com/listencontroller
當一個請求被髮送到這個URL,並請求從http://www.itsme.com發送,我希望能夠處理該請求,否則我不想用它做任何事情。
這怎麼能用一種漂亮的方式完成,即我的控制器中沒有硬編碼的URL?
您的意思是瀏覽器必須來自itsme.com域,或者該請求必須通過位於itsme.com上的頁面上的鏈接出現?
第一個問題需要您在request.remoteAddr上進行反向dns查找。
後者需要查看傳入請求的頭文件Referer。這不是防彈的,因爲它很容易被欺騙。此外,在某些情況下,它不會被髮送,所以你的里程可能會有所不同。
無論是哪種情況,Grails過濾器或控制器攔截器都可能是最優雅的解決方案。
真的什麼,我看到的是,將調用我的控制器(通過URL itsme.com)的服務。我正在考慮用過濾器,攔截器或控制器來做這件事(醜陋但是......你知道什麼:P)我只是想知道是否有一種乾淨利落的控制方式。 – marko