如果从特定页面访问,则阻止访问给定URL

时间:2014-07-08 10:09:15

标签: grails groovy

我有一个grails URL如下:

http://myspecialproject/MyApp/MyController/paymentSuccess

如果上一页为PayThroughCreditCard,用户应该只访问上述网址。

目前,拥有上述网址的任何人都可以点击并查看该页面。

如何防止这种情况发生?

我使用grails安全性,但这是为了防止未经授权的用户访问它。

2 个答案:

答案 0 :(得分:2)

您可以使用Grails filter来实现该目标。在之前的操作中,您可以测试请求来自哪里,如果它不是来自有效的URL,您只需将浏览器重定向到"抱歉,您不能看到此页面"页。

paymentSuccessFilter(controller:'myController', action:'paymentSuccess') {
    before = { 
        if (! request.getHeader("referer").contains('controllerName')) {
          redirect(action: 'invalidAccess')
          return false
        }
    }
}

检查逻辑是一个方面,不应该是目标控制器操作本身的一部分。这就是为什么您更愿意使用Grails过滤器来实现目标的原因。

答案 1 :(得分:1)

你也可以检查推荐人

def referrer=request.getHeader('referer')