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

Her*_*erb 3 java spring mocking spring-security

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

通过注释,@WithMockUser我可以模拟安全上下文。默认情况下,此模拟方法将创建SimpleGrantedAuthoritys. 期待Permission我的选民投票,这显然是行不通的。我可以配置@WithMockUser使用我的自定义GrantedAuthority类吗?

附言。我故意不使用Shiro。

mrk*_*nic 6

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

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