首页 > 解决方案 > ipRestrictions 在 Grails 3.3.10 中不起作用?

问题描述

我无法通过 springsecurity 让 ipRestrictions 工作。我正在使用一个裸应用程序来尝试隔离 Grails 3.3.10 和 spring-security-core 3.2.0 的问题。

最终,我想将对 Web 服务的访问限制在有限的子网中。但为了让它发挥作用,我只是想找到任何会被拒绝的案例。

我正在使用股票创建应用程序,但我已将以下内容添加到 build.gradle 以引入 spring-security:

    compile 'org.grails.plugins:spring-security-core:3.2.0'

我的 application.groovy 配置它是:

grails.plugin.springsecurity.rejectIfNoRule = false
grails.plugin.springsecurity.fii.rejectPublicInvocations = false
grails.plugin.springsecurity.ipRestrictions = [
    [pattern: '/**', access: '172.16.0.1']
]

我期待看到类似 401 Unauthorized 或 403 Forbidden 的内容。

标签: grailsspring-securityip-restrictions

解决方案


IP 地址限制不适用于来自localhost. 这是为了“帮助”本地开发,但随后会使测试您的限制更加困难。在文档第 18 节的底部有一个措辞令人困惑的注释,它应该以“无论 IP 地址如何,始终可以从 localhost 访问所有模式”:

无论 IP 模式如何,始终可以从 localhost 访问所有地址,主要是为了支持本地开发模式。


推荐阅读