Part III. Testing(测试)
本节描述了Spring Security提供的测试支持。
要使用spring安全测试支持,您必须将spring-security-test-4.2.15.RELEASE.jar作为项目的一个依赖项。
问题是“作为一个特定的用户,我们如何最容易地运行测试?”答案是使用@WithMockUser。以下测试将作为用户名为“user”、密码为“password”、角色为“ROLE_USER”的用户运行。
具体来说,以下是正确的:
用户名为“user”的用户不一定存在,因为我们是在模拟用户。
SecurityContext中填充的Authentication类型为UserNamePasswordAuthenticationToken。
身份验证的主体是Spring Security的用户对象。
用户将拥有用户名“User”,密码“password”,并使用一个名为“ROLE_USER”的授权。
我们的例子很好,因为我们能够利用大量的默认。如果我们想用不同的用户名运行测试呢?以下测试将使用用户名“customUser”运行。同样,用户不需要实际存在。
我们还可以轻松定制角色。例如,该测试将使用用户名“admin”以及角色“ROLE_USER”和“ROLE_ADMIN”来调用。
如果我们不希望该值自动以ROLE_为前缀,我们可以利用authorities属性。例如,这个测试将使用用户名“admin”和权限“USER”和“ADMIN”来调用。
当然,在每个测试方法上放置注释会有点乏味。相反,我们可以在类级别放置注释,并且每个测试都将使用指定的用户。例如,下面将使用用户名为“admin”、密码为“password”、角色为“ROLE_USER”和“ROLE_ADMIN”的用户来运行每个测试