【问题标题】:Grails 3 Spring Security application.ymlGrails 3 Spring Security 应用程序.yml
【发布时间】:2016-01-30 15:02:04
【问题描述】:

由于某种原因,我的静态规则没有应用。

添加“org.grails.plugins:spring-security-core:3.0.0.M1”插件并执行

grails s2-quickstart com.testapp User Role

成功创建角色用户和用户角色域。 还创建了一个带有一些设置的 application.groovy 文件。

但我正在使用 application.yml 文件来配置我的应用程序。 所以我将属性移动到我的 application.yml 并删除了 .groovy 文件。

由于某种原因,未应用静态规则。可能有语法错误。

---
grails:
    plugin:
        springsecurity:
            userLookup:
                userDomainClassName: 'User'
                authorityJoinClassName: 'UserRole'
            authority:
                className: 'Role'
            apf:
                postOnly: false
            password:
                algorithm: 'bcrypt'
            controllerAnnotations:
                staticRules:
                    /: permitAll
                    /error: permitAll
                    /index: permitAll
                    /index.gsp: permitAll
                    /shutdown: permitAll
                    /assets/**: permitAll
                    /**/js/**: permitAll
                    /**/css/**: permitAll
                    /**/images/**: permitAll
                    /**/favicon.ico: permitAll
    mime:
        disable:
            accept:
                header:
                    userAgents:
    ...

我尝试过多种变体,例如

'/': 'permitAll'
/: 'permitAll'

但每次我打开 localhost:8080/ 时都会提示我登录!

【问题讨论】:

  • 你需要定义grails.plugin.springsecurity.controllerAnnotations.staticRules

标签: spring-security grails-3.0


【解决方案1】:

YML 中新的 Spring 安全配置如下所示:

---
grails:
  plugin:
    springsecurity:
      userLookup.userDomainClassName: 'org...User'
      userLookup.authorityJoinClassName: 'org...UserRole'
      authority.className: 'org...Role'
      controllerAnnotations.staticRules:
        - pattern: '/'
          access: ['permitAll']
        - pattern: '/index'
          access: ['permitAll']
        - pattern: '/index.gsp'
          access: ['permitAll']
        - pattern: '/error'
          access: ['permitAll']
        - pattern: '/user/denied'
          access: ['permitAll']
        - pattern: '/assets/**'
          access: ['permitAll']
        - pattern: '/**/js/**'
          access: ['permitAll']
        - pattern: '/**/css/**'
          access: ['permitAll']
        - pattern: '/**/images/**'
          access: ['permitAll']
        - pattern: '/**/favicon.ico'
          access: ['permitAll']

出于测试目的(以确保此配置有效)在所有静态规则之上允许所有,但请务必稍后将其删除:

- pattern: '/**'
      access: ['permitAll']

【讨论】:

    猜你喜欢
    • 2016-06-25
    • 2023-03-24
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2016-08-20
    • 2019-05-10
    • 2014-04-15
    • 2018-03-19
    相关资源
    最近更新 更多