java - 从 Enum 中获取用户角色值
问题描述
我将此枚举用于可用的用户角色类型:
public enum Role implements GrantedAuthority {
ROLE_ADMIN, ROLE_CLIENT;
public String getAuthority() {
return name();
}
}
完整代码:Github
但是当我尝试使用此代码转换列表时:
claims.put("auth", roles.stream()
.map(s -> new SimpleGrantedAuthority(s.getAuthority()))
.filter(Objects::nonNull)
.collect(Collectors.toList())
);
当我尝试获取s.getAuthority()
. 你知道我该如何解决这个问题吗?
解决方案
filter
您应该在使用之前删除所有空值map
。
roles.stream().filter(Objects::nonNull)
.map(s -> new SimpleGrantedAuthority(s.getAuthority()))
.collect(Collectors.toList());
推荐阅读
- spring-boot - 带有 H2 和 data.sql 的 Spring Boot Data JPA - 未找到表
- python - 不和谐机器人中的恶魔线程
- swift - SceneKit / ARKit 每帧更新一个节点
- python - python字典配置不产生日志
- gitlab - 使用 Gitlab CI 从 Master 扫描容器图像(带有标签的图像:最新)
- json - Flutter:http包-获取请求失败
- django - 在 postgreSQL 中一个表可以有多少个外键?
- java - 如何获取该元素在数组中的索引?
- git - git 有没有办法在主分支中有一个文件夹,其中包含所有以前版本的文件夹?
- kotlin - 如何在不创建新实例 Kotlin 的情况下获取变量