集成测试grails spring安全插件?

我有这个:

@Secured(['ROLE_USER', 'ROLE_HELPDESK', 'ROLE_ADMIN'])
class MyController {
    def edit = {
    }

    @Secured(['ROLE_ADMIN'])
    def uploadForUser = {
        params.userId = params.id
        forward(controller: 'someController', action: 'someAction', params: params)
    }
}

我认为应该失败的集成测试:

public void test_uploadForUser_unauthenticated(){
    myController.params.id = "testUser"
    myController.uploadForUser()
}

然而测试通过了.有没有办法测试用spring security插件注释的控制器?

最佳答案
SpringSecurityFilter会分析这些注释,因此如果您没有执行实际的HTTP请求,它们将无法工作.

因此,您需要切换到通过操作中的条件检查角色,例如完成here,或者使用WebDriver / Geb或一些更简单的框架测试它 – 在Grails Security Plugin itself中提供了非常好的方法.

转载注明原文:集成测试grails spring安全插件? - 代码日志