3 回答

TA贡献1785条经验 获得超8个赞
做这样的事情,
List<Object> roleNames = (Collectors.toList(user.getRoles()));
List<String> roleNamesString= new List<string> ();
for(Object a: roleNames){
roleNameString.add(String.valueOf(a));
}
您可能需要覆盖 Role 类的 toString 方法,具体取决于模型的复杂性。

TA贡献1804条经验 获得超8个赞
基本上,您不需要将角色转换为List<String>您可以List<GrantedAuthority>通过以下方式构建的角色
user.getRoles().stream()
.map(role -> new SimpleGrantedAuthority(role.getRoleName()))
.collect(Collectors.toList());
如果你真的需要,List<String>那么你可以做到
user.getRoles().stream()
.map(Role::getRoleName)
.collect(Collectors.toList());

TA贡献1802条经验 获得超5个赞
在这部分
List<String> roleNames = (Collectors.toList(user.getRoles()));
您的角色名称包含 user.getRoles().toString() 列表,而不是预期的角色名称;
尝试
List<String> roleNames = user.getRoles().stream() .map(Role::getName) .collect(Collectors.toList());
此外,将瞬态添加到 ROLE_USER 和 ROLE_ADMIN 字段。
添加回答
举报