我正在grails 2.0中使用Spring Security Core插件(1.2.7)
假设我的 Controller 具有使用@Secured批注的方法。
class ArticleController {
def springSecurityService
@Secured(['ROLE_PREMIUM_USER'])
def listPremium() {
render 'premium content'
}
}
在我的单元测试中,我想测试角色为“ROLE_PREMIUM_USER”的用户是否可以看到listPremium方法的内容。我怎样才能做到这一点?
我知道它应该开始如下:
@TestFor(ArticleController)
@Mock([SpringSecurityService])
class ArticleControllerTests {
void testListPremium() {
defineBeans {
springSecurityService(SpringSecurityService)
}
//but how to login the user here in order to see premium content?
controller.listPremium()
assert response.text() == 'premium content'
}
}
我不确定如何验证用于检查ROLE_PREMIUM_USER的用户或模拟操作。有什么帮助吗?
最佳答案
您可能可以使用
SpringSecurityUtils.reauthenticate username, null
关于grails - 如何在单元测试中针对Spring Security验证用户身份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10507854/