8000 fix: roles 副本解决 retainAll 影响 · cadecode/uni-boot-cloud@2c3c3ca · GitHub
[go: up one dir, main page]

Skip to content

Commit 2c3c3ca

Browse files
committed
fix: roles 副本解决 retainAll 影响
1 parent 9fbd235 commit 2c3c3ca

File tree

1 file changed

+3
-6
lines changed
  • framework/framework_base/src/main/java/com/github/cadecode/uniboot/framework/base/security/voter

1 file changed

+3
-6
lines changed

framework/framework_base/src/main/java/com/github/cadecode/uniboot/framework/base/security/voter/DataBaseRoleVoter.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
import org.springframework.stereotype.Component;
1414
import org.springframework.util.AntPathMatcher;
1515

16-
import java.util.Collection;
17-
import java.util.Comparator;
18-
import java.util.List;
19-
import java.util.Objects;
16+
import java.util.*;
2017

2118
/**
2219
* 基于数据库内容的角色投票器
@@ -46,7 +43,7 @@ public int vote(Authentication authentication, Object object, Collection<ConfigA
4643
List<SysApiRolesResDto> apiRolesResponseList = sysApiClient.listRolesResVo();
4744
// 获取用户角色
4845
SysUserDetails sysUserDetails = SecurityUtil.getUserDetails(authentication);
49-
List<String> roles = sysUserDetails.getRoles();
46+
List<String> roles = new ArrayList<>(sysUserDetails.getRoles());
5047
// 获取与 url 相同的配置,不存在与 url 相同配置则使用 spring mvc ant 风格匹配
5148
SysApiRolesResDto apiRolesResponse = apiRolesResponseList.stream()
5249
.filter(api -> requestUrl.equals(api.getUrl()))
@@ -70,6 +67,6 @@ public int vote(Authentication authentication, Object object, Collection<ConfigA
7067
}
7168
// 取用户 token 内角色和数据库查询出角色的交集
7269
roles.retainAll(apiRolesResponse.getRoles());
73-
return roles.size() > 0 ? ACCESS_GRANTED : ACCESS_DENIED;
70+
return !roles.isEmpty() ? ACCESS_GRANTED : ACCESS_DENIED;
7471
}
7572
}

0 commit comments

Comments
 (0)
0