【问题标题】:Grails 2.4 spring security & Asset pipelineGrails 2.4 春季安全和资产管道
【发布时间】:2014-12-30 20:30:30
【问题描述】:

这是请求映射表包含的内容:

'/', '/index', '/index.gsp', '/**/favicon.ico',
  '/assets/**', '/**/js/**', '/**/css/**', '/**/images/**',
  '/login', '/login.*', '/login/*',
  '/logout', '/logout.*', '/logout/*']

但是login page 中没有加载静态资源。每个对静态资源的请求都会重定向到login/auth

【问题讨论】:

    标签: grails spring-security grails-2.4


    【解决方案1】:

    在我的 (Spring Security 2.0-RC4) 应用程序中,我有:

    grails.plugin.springsecurity.controllerAnnotations.staticRules = [
        '/'                 : ['permitAll'],
        '/searchable/**'    : ['permitAll'],
        '/index'            : ['permitAll'],
        '/index.gsp'        : ['permitAll'],
        '/assets/**'        : ['permitAll'],
        '/**/js/**'         : ['permitAll'],
        '/**/css/**'        : ['permitAll'],
        '/**/images/**'     : ['permitAll'],
        '/**/favicon.ico'   : ['permitAll']
    ]
    

    这是没有问题的。请注意,我使用注释。

    看起来好像您使用请求映射,并且从我读到的文档中您可能会创建这样的请求映射:

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

    也许您应该考虑进行 save(failOnError: true) 以确保您的 requestmap 表中确实有数据。

    【讨论】:

    • 所有 spring 安全配置在 2.3 版本中运行良好。现在我已经开始了一个 2.4 项目。数据保存在数据库中。我已经尝试创建一个新的示例应用程序,并且在安装 Spring Security 和资产管道插件后默认情况下不显示资产。
    • 我的应用程序正在运行 2.4,但正如我所说,我正在使用注释。您是否尝试过调试 Spring Security,也许它可以给您一个提示?
    【解决方案2】:

    显然您使用请求映射。所以看看 Using Spring Security and Requestmap fails in Grails

    除了确保您的 requestmap 正常之外,您还可以刷新您的 requestmap,例如:

    new Requestmap(url: '/login/**', configAttribute: 'permitAll').save(flush: true, failOnError: true)
    

    【讨论】:

      猜你喜欢
      • 2018-09-11
      • 2017-10-01
      • 2015-11-09
      • 2023-03-06
      • 2016-02-09
      • 2013-12-22
      • 1970-01-01
      相关资源
      最近更新 更多