【问题标题】:Disable user authentication in grails' spring-security-core plugin在 grails 的 spring-security-core 插件中禁用用户身份验证
【发布时间】:2015-07-20 06:08:32
【问题描述】:

我希望为我在 Grails 上编写的小型服务添加一些安全性:IP 限制、强制 HTTPS 以及以后可能的更多内容。

所以我添加了 spring-security-core 依赖项

compile 'org.grails.plugins:spring-security-core:2.0-RC4'

到我的 build.gradle 和类似的东西

grails.plugin.springsecurity.secureChannel.definition = ['/**': 'REQUIRES_SECURE_CHANNEL']
grails.plugin.springsecurity.ipRestrictions = ['/**': ['127.0.0.1', '%MY-OFFICE-IP-HERE%']]

到我的 Config.groovy。

Service 非常简单,它只有两个控制器以 JSON 格式返回一些数据。但是 spring-security-core 插件默认添加了用户认证:登录页面、注销拦截器、拒绝访问处理程序等。我现在不需要这样的功能并想禁用它。我该怎么做?

【问题讨论】:

    标签: grails spring-security


    【解决方案1】:

    只需将其添加到您的 Config.groovy 以用于开发环境:

    grails.plugin.springsecurity.active = false
    

    【讨论】:

    • 感谢您的回答。但您的解决方案似乎禁用了整个 spring-security-core 插件,包括 ip 限制和安全通道定义。
    • 对不起@user24809,我误解了你的问题。当您想要禁用身份验证系统而某些用户尝试访问 IP 之外时,您真正想要的是什么?
    • 很简单:如果来自request.remoteAddr 的 IP 不被允许(不在指定的地址/掩码列表中),则返回 403 HTTP 状态代码。目前我使用的是普通的 Grails 过滤器,但我想用 spring-security-core 来做。
    【解决方案2】:

    所以你的意思是你只想要 IP 限制而不是角色,保护你的控制器/方法或应用程序的任何实际安全性,因为它在 DMZ 中???

    那么你不需要 Spring-security,只需实现类似这样的东西......How do you get Client IP Address in a Grails controller?

    检测过滤器中的 IP,如果它与配置中可接受的 IP 不匹配则拒绝

    【讨论】:

    • 我已经完成了,但这是一个临时解决方案。看来该服务在不久的将来需要 x509 身份验证,所以无论如何我不得不使用 spring-security-core。
    • 是的,那么你想实现 Spring Security。您要求吃蛋糕并吃掉它,但您还需要实现角色和安全性。这就是 Spring-security-core 如此出色的一体化解决方案的原因。
    猜你喜欢
    • 2012-08-28
    • 2012-02-17
    • 2013-11-13
    • 2012-02-19
    • 2013-12-16
    • 2015-03-13
    • 2015-07-30
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多