【问题标题】:Is there a way to get the IP address of the client/caller in a Shiro Filter in Grails有没有办法在 Grails 的 Shiro 过滤器中获取客户端/调用者的 IP 地址
【发布时间】:2011-11-26 22:07:56
【问题描述】:

抱歉,这是一个愚蠢的问题。我有一些在 Grails 控制器中实现的 Web 服务调用,我们使用 Shiro 插件来保证安全性。我希望能够为某些操作创建 IP 地址白名单,这些操作只能来自我们自己的服务器或受信任的合作伙伴。我在这个主题上找到了一些备用文档。我的第一个想法是尝试在这里实施白名单。如果有更简单的方法可以做到这一点,我不会感到惊讶。我有点像 Shiro 新手。当然可以使用 Shiro for Dummies 的副本!

class ShiroSecurityFilters {
     def filters = {
        all(uri: "/**") {
            before = {
                // Ignore direct views (e.g. the default main index page).
                if (controllerName in ['foo', 'bar']) {
                  return true
                }
                 // Access control by convention.
                accessControl()
            }
        }
    }
}

【问题讨论】:

    标签: security grails shiro


    【解决方案1】:

    您应该可以访问过滤器中的request 对象,并且可以调用request.getRemoteAddr() 来访问IP 地址。

    【讨论】:

    • 嗯,这很容易!谢谢。我尝试在我的过滤器中放置一个断点,这样我就可以检查哪些变量是可用的,但是在这些动态编程语言中,元编程并不像我希望的那样工作。希望有一种方法可以在给定断点处查看范围内的所有变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    相关资源
    最近更新 更多