@WithMockUser:使用自定义的GrantedAuthority类而不是SimpleGrantedAuthority

时间:2017-10-30 12:55:55

标签: java spring spring-security mocking

我正在构建一个基于权限的访问控制,它具有Spring项目的分层权限。为此,我将GrantedAuthority对象扩展为Permission。自定义PermissionVoter最终将从中获益,因为可以检索单个权限部分。 这按预期工作。唯一的问题是我的集成测试。

使用注释@WithMockUser我可以模拟安全上下文。默认情况下,此模拟方法将创建SimpleGrantedAuthority s。在我的选民中期待Permission,这显然不会起作用。我可以配置@WithMockUser以使用我的自定义GrantedAuthority课程吗?

PS。我故意不使用Shiro。

1 个答案:

答案 0 :(得分:2)

您可以改为使用@WithUserDetails将userDetailsS​​ervice作为参数,例如userDetailsServiceBeanName = "mockedUserDetailsService"和用户("值")

然后,您可以使用模拟的UserDetailsS​​ervice模拟您的用户及其GrantedAuthorities。

相关问题