使用Spring Security插件3.1.2的Grails 3.2.9得到了太多的重定向"使用默认配置

时间:2017-05-14 17:25:58

标签: grails spring-security

创建了一个新的应用程序,添加了编译' org.grails.plugins:spring-security-core:3.1.2'并做了:

grails s2-quickstart com.cabolabs.security User Role RequestMap

然后grails run-app。

  1. 尝试访问/ dbconsole,重定向到/ login / auth
  2. / login / auth得到了#34; localhost重定向了你太多次了。" ERR_TOO_MANY_REDIRECTS
  3. 这是插件的预期行为还是错误?

    安装和配置部分的文档没有提及有关此https://grails-plugins.github.io/grails-spring-security-core/v3/#configuration的任何内容

    更新

    在文档的第5.3节(https://grails-plugins.github.io/grails-spring-security-core/v3/)中找到了应该添加的初始RequestMap。

    for (String url in [
          '/', '/error', '/index', '/index.gsp', '/**/favicon.ico', '/shutdown',
          '/**/js/**', '/**/css/**', '/**/images/**',
          '/login', '/login.*', '/login/*',
          '/logout', '/logout.*', '/logout/*']) {
       new Requestmap(url: url, configAttribute: 'permitAll').save()
    }
    

    在Bootstrap.groovy中使用它,并且仍然有太多重定向"。

    此外,无法查看/ dbconsole以检查数据库,因为它已被插件阻止。

2 个答案:

答案 0 :(得分:1)

GitHub上提出的解决方案和我测试它的工作原理是在创建请求映射实例后调用clearCachedRequestmaps。

  for (String url in [
      '/', '/error', '/index', '/index.gsp', '/**/favicon.ico', '/shutdown',
      '/**/js/**', '/**/css/**', '/**/images/**',
      '/login', '/login.*', '/login/*',
      '/logout', '/logout.*', '/logout/*']) {
   new RequestMap(url: url, configAttribute: 'permitAll').save()
}

   springSecurityService.clearCachedRequestmaps()

答案 1 :(得分:0)

来晚了,但是我遇到了同样的问题。我修复它的方法是在chainMap中添加以下元素:

[pattern: "/login/**", filters:"none"]

之所以可行,是因为spring试图在访问登录页面之前让您登录,这显然行不通。上面的行告诉spring允许流量无需先登录就可以登录登录端点(因为您不能这样做)。