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

标签 grails groovy

我有一个 grails URL,如下所示:
http://myspecialproject/MyApp/MyController/paymentSuccess
如果上一页是 PayThroughCreditCard,用户应该只访问上面的 URL。 .

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

我怎样才能防止这种情况发生?

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

最佳答案

您可以使用 Grails filter 实现这一目标。在之前的操作中,您测试请求的来源,如果它不是来自有效的 URL,您只需将浏览器重定向到“抱歉,您不允许查看此页面”页面。

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

检查逻辑是不应成为目标 Controller 操作本身的一部分的方面。这就是为什么您宁愿使用 Grails 过滤器来实现您的目标。

关于grails - 如果从特定页面访问,则阻止访问给定的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24629133/

相关文章:

groovy - Groovy Postbuild 如何检查先前构建后操作的日志消息

grails - 如何扩展用于 'grails run-app' 的类路径

grails - Holders.grailsApplication.config 部署到 tomcat 时为空

spring - Grails 3 与并发 session

groovy - 带有 Groovy 'with' 闭包的重复 try-catch block ?

Grails 拆分或标记化

java - Java Streams 中 Groovy 的 int.times

grails - grails3中作为单例的服务范围

java - 用于运行 grails 命令的 Groovy 脚本

testing - chalice : How I do mock other methods of a class under test which might be called internally during testing