spring-security 对具有@Secured的API进行集成测试

htzpubme  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(134)

我有一个由spring security和Keycloak保护的spring REST API,我正在使用keycloak testcontainer进行集成测试。我可以向keycloak添加一个用户,并在测试大多数API时获得一个令牌。
问题是,如果我有一个用@Secured注解的API,将其访问权限限制为只有具有特定角色的用户,那么如何将该角色分配给创建的用户,或者模拟该角色来运行集成测试

dw1jzc5e

dw1jzc5e1#

您可能只想将角色添加到用户,例如:

RoleRepresentation role = new RoleRepresentation("rolename", "role desc", false);
KeycloakContainer container = new KeycloakContainer();        
RealmResource realm = container.getKeycloakAdminClient().realm("realm");
realm.roles().create(role);
realm
  .users()
  .get("user")
  .roles()
  .realmLevel()
  .add(List.of(role));

相关问题