Tôi đang sử dụng lò xo Plugin lõi bảo mật (1.2.7) với grails 2.0Làm thế nào để xác thực người dùng chống lại an ninh mùa xuân trong các thử nghiệm đơn vị
Hãy nói rằng tôi có điều khiển với một phương pháp có sử dụng chú thích @Secured.
class ArticleController {
def springSecurityService
@Secured(['ROLE_PREMIUM_USER'])
def listPremium() {
render 'premium content'
}
}
trong thử nghiệm đơn vị của tôi Tôi muốn kiểm tra xem người dùng có vai trò 'ROLE_PREMIUM_USER' có thể xem nội dung của phương pháp listPremium hay không. Tôi có thể làm cái này như thế nào?
Tôi biết rằng nó nên bắt đầu như sau:
@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'
}
}
Tôi không chắc chắn làm thế nào tôi có thể xác thực người dùng hoặc hành động giả để kiểm tra ROLE_PREMIUM_USER. Bất kỳ giúp đỡ?
Hãy xem plugin này: [mùa xuân -security-mock] (http://grails.org/plugin/spring-security-mock) – mpccolorado
thử controller.springSecurityServce.ifAnyGranted ("ROLE _PREMIUM_USER ") bạn có thể phải mở rộng lớp của bạn từ ControllerUnitTestCase – allthenutsandbolts