Grails spring-security-core插件教程

时间:2015-04-13 06:49:42

标签: grails spring-security

我正在使用Grails 2.4.5,我创建了一个新的应用程序TestSecurity,创建了一个简单的控制器SercuredController,可以从界面访问。

package testsecurity

class SecuredController {

    def index() { 
        render 'HELLO FROM CONTROLLER'
    }
}

然后我添加了一个spring_security_core插件:我添加了编译“:spring-security-core:2.0-RC4”。 然后是s2-quickstart com.testapp用户角色

然后我启动应用程序,spring_security不允许我输入http://localhost:8080/TestSecurity/secured/index并要求输入密码和登录。 我没有添加@Secured(['ROLE_ADMIN'])或任何其他注释。 如何解决这个错误?

在教程http://grails-plugins.github.io/grails-spring-security-core/guide/single.html#tutorials中,如果没有注释,控制器就不能被保护并且可以被访问。

Config.groovy文件如下所示:

// Added by the Spring Security Core plugin:
grails.plugin.springsecurity.userLookup.userDomainClassName = 'com.testapp.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'com.testapp.UserRole'
grails.plugin.springsecurity.authority.className = 'com.testapp.Role'
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
    '/':                              ['permitAll'],
    '/index':                         ['permitAll'],
    '/index.gsp':                     ['permitAll'],
    '/assets/**':                     ['permitAll'],
    '/**/js/**':                      ['permitAll'],
    '/**/css/**':                     ['permitAll'],
    '/**/images/**':                  ['permitAll'],
    '/**/favicon.ico':                ['permitAll']
]

2 个答案:

答案 0 :(得分:1)

我在控制器上使用了@Secured(['ROLE_ANONYMOUS'])注释。安全性已经开始起作用。

答案 1 :(得分:0)

您应该使用注释。保护您的控制器。 如果您不喜欢注释,请更改grails.plugin.springsecurity.securityConfigTyp。

阅读本文:

http://grails-plugins.github.io/grails-spring-security-core/guide/requestMappings.html#securedAnnotations

默认情况下,所有网址都是安全的。要更改此尝试:

grails.plugin.springsecurity.rejectIfNoRule = false grails.plugin.springsecurity.fii.rejectPublicInvocations = false

阅读此选项的文档:

http://grails-plugins.github.io/grails-spring-security-core/guide/requestMappings.html

<强>注意:

正如Burt Beckwith在下面评论的那样,禁用rejectIfNoRule和rejectPublicInvocations不是一个好主意。因此,建议不要使用此功能,但如果您只想测试某些内容,则可能会有所帮助!

相关问题