grails - spring-security-core Grails插件

标签 grails grails-plugin grails-2.0 grails-2.5

使用 spring-security-core:2.0-RC5插件,并添加了

@Secured('ROLE_USER')

转到人工 Controller ,当我转到此URL时

http://localhost:8080/MyApp/human/index



它假定将我转发到登录页面,因为此操作 protected ,但相反,它给了我this page can't be displayed,如下所示。该如何解决。

enter image description here

最佳答案

我不确定为什么没有方括号就无法使用,但如下所示

@Secured(['ROLE_USER'])



或作为

@Secured(value=["hasRole('ROLE_USER')"])



@Secured(['ROLE_USER'])中可以明显看出,它采用角色列表而不是单个角色字符串。要将角色赋予字符串,您应该使用安全注释中的value属性,然后调用hasRole('your_role')。

希望能帮助到你!

编辑

此外,检查 Spring 安全设置。以下是地雷:
grails.plugin.springsecurity.logout.postOnly = false
grails.plugin.springsecurity.userLookup.userDomainClassName = 'com..User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'com.UserRole'
grails.plugin.springsecurity.authority.className = 'com.Role'
grails.plugin.springsecurity.authority.groupAuthorityNameField = 'authorities'
grails.plugin.springsecurity.useRoleGroups = false
grails.plugin.springsecurity.securityConfigType = "Annotation"
grails.plugin.springsecurity.rejectIfNoRule = false
grails.plugin.springsecurity.fii.rejectPublicInvocations = false
grails.plugin.springsecurity.successHandler.defaultTargetUrl="/home/index"
grails.plugin.springsecurity.controllerAnnotations.staticRules  = [
        '/':                ['permitAll'],
        '/error':           ['permitAll'],
        '/index':           ['permitAll'],
        '/index.gsp':       ['permitAll'],
        '/shutdown':        ['permitAll'],
        '/assets/**':       ['permitAll'],
        '/**/js/**':        ['permitAll'],
        '/**/css/**':       ['permitAll'],
        '/fonts/**':        ['permitAll'],
        '/**/images/**':    ['permitAll'],
        '/**/favicon.ico':  ['permitAll'],
        '/login/**':        ['permitAll'],
        '/logout/**':       ['permitAll'],
        '/dbconsole/**':    ['ROLE_ADMIN'],

]

希望这些会有所帮助!

关于grails - spring-security-core Grails插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34324764/

相关文章:

spring - Geronimo.out增加太快

grails - Grails Spring Security Core插件: Controller 不需要身份验证

grails - 没有方法签名:save()适用于参数类型:()值:[]

java - Grails 中 Quartz 工作的 withTransaction?

Grails Controller 操作不能过载

grails - 如何使用Grails DBMigration插件更新已运行的数据库迁移文件?

grails - Spring Security UI和Grails 2.0

grails - 另一个 Grails 插件的资源插件依赖项

spring - 如何在Grails中使用db-migrate更改列类型?

grails - 尝试在Grails中保存DomainObject时,Id设置为NULL