Skip to content

Commit af38758

Browse files
committed
feat: 当 api 配置没有关联角色,通过鉴权
1 parent 3b1a6fa commit af38758

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

framework/src/main/java/top/cadecode/uniboot/framework/security/voter/DataBaseRoleVoter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package top.cadecode.uniboot.framework.security.voter;
22

3+
import cn.hutool.core.util.ObjectUtil;
34
import lombok.RequiredArgsConstructor;
45
import org.springframework.security.access.ConfigAttribute;
56
import org.springframework.security.access.vote.RoleVoter;
@@ -61,6 +62,11 @@ public int vote(Authentication authentication, Object object, Collection<ConfigA
6162
if (Objects.isNull(sysApiRolesVo)) {
6263
return ACCESS_ABSTAIN;
6364
}
65+
// 如果该 api 配置没有关联角色,则通过
66+
// stream().noneMatch 表示没有符合条件的
67+
if (sysApiRolesVo.getRoles().stream().noneMatch(ObjectUtil::isNotNull)) {
68+
return ACCESS_GRANTED;
69+
}
6470
// 取用户 token 内角色和数据库查询出角色的交集
6571
roles.retainAll(sysApiRolesVo.getRoles());
6672
return roles.size() > 0 ? ACCESS_GRANTED : ACCESS_DENIED;

0 commit comments

Comments
 (0)