我正在构建一个基于权限的访问控制,它具有Spring项目的分层权限。为此,我将GrantedAuthority
对象扩展为Permission
。自定义PermissionVoter
最终将从中获益,因为可以检索单个权限部分。
这按预期工作。唯一的问题是我的集成测试。
使用注释@WithMockUser
我可以模拟安全上下文。默认情况下,此模拟方法将创建SimpleGrantedAuthority
s。在我的选民中期待Permission
,这显然不会起作用。我可以配置@WithMockUser
以使用我的自定义GrantedAuthority
课程吗?
PS。我故意不使用Shiro。
答案 0 :(得分:2)
您可以改为使用@WithUserDetails
将userDetailsService作为参数,例如userDetailsServiceBeanName = "mockedUserDetailsService"
和用户("值")
然后,您可以使用模拟的UserDetailsService模拟您的用户及其GrantedAuthorities。