0

rejectIfNoRule = true 当我尝试打开主页“/”时,我在 Grails 应用程序中遇到无限循环问题,我被重定向到“/login/auth”并出现错误

错误 310 (net::ERR_TOO_MANY_REDIRECTS):重定向太多。

问题的根源似乎位于 org.codehaus.groovy.grails.plugins.springsecurity.RequestmapFilterInvocationDefinition.java 中的初始化方法中,其中以下异常被静音。

Exception initializing; this is ok if it's at startup and due to GORM not being initialized yet since the first web request will re-initialize. Error message is "Cannot load Requestmaps, \"requestMap.className\" property is not set

不幸的是,第一个请求是这个无限循环的请求,那么我该如何为 GORM 初始化 Requestmap?

环境:

  • Groovy 版本:2.0.6
  • 圣杯 2.2.0
  • JVM:1.7.0_07 供应商:甲骨文公司
  • 操作系统:Linux
  • 弹簧安全核心:1.2.7.3
  • 弹簧安全用户界面:0.2

我的 Config.groovy:

  • grails.plugins.springsecurity.securityConfigType = "请求映射"
  • grails.plugins.springsecurity.rejectIfNoRule = true

请求图:

new Requestmap(url: '/js/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()
new Requestmap(url: '/css/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()
new Requestmap(url: '/images/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()
new Requestmap(url: '/login/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()
new Requestmap(url: '/logout/**', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()
new Requestmap(url: '/', configAttribute: 'IS_AUTHENTICATED_ANONYMOUSLY').save()
4

1 回答 1

3

错误消息是“无法加载请求映射,\”requestMap.className\”属性未设置

这是您的错误的原因 - 当您在数据库中存储请求映射时,您需要一个条目来Config.groovy告诉 spring 安全插件Requestmap域类的名称

grails {
  plugins {
    springsecurity {
      securityConfigType = SecurityConfigType.Requestmap

      // fully qualified class name of the Requestmap class
      requestMap.className = 'com.example.Requestmap'

      // these next two are the defaults but good to make them explicit anyway
      requestMap.urlField = 'url'
      requestMap.configAttributeField = 'configAttribute'
    }
  }
}
于 2012-12-30T19:56:08.467 回答