【问题标题】:Integration testing grails spring security plugin?集成测试grails spring安全插件?
【发布时间】:2011-10-22 17:07:44
【问题描述】:

我有这个:

@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 spring plugins grails spring-security


    【解决方案1】:

    这些注释由SpringSecurityFilter 分析,因此如果您没有执行实际的 HTTP 请求,它们将不起作用。

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

    【讨论】:

    • 非常简洁的解释。谢谢。
    • 嘿@Artur Nowak,你的第二个链接坏了。知道代码移到哪里了吗?
    • @SirCelsius 我已更新链接以指向以前的版本。
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 2016-07-15
    • 2011-05-05
    • 1970-01-01
    相关资源
    最近更新 更多