Skip to content

Commit 2a4011a

Browse files
committed
优化权限
1 parent be1bf12 commit 2a4011a

File tree

4 files changed

+27
-11
lines changed

4 files changed

+27
-11
lines changed

hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/AuthenticationHolder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ private static Optional<Authentication> get(Function<AuthenticationSupplier, Opt
5656
.filter(Optional::isPresent)
5757
.map(Optional::get)
5858
.reduceWith(SimpleAuthentication::new, SimpleAuthentication::merge)
59+
.filter(auth->auth.getUser()!=null)
5960
.map(Authentication.class::cast)
6061
.blockOptional();
6162
}

hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/Permission.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
import org.hswebframework.web.authorization.access.ScopeDataAccessConfig;
2323

2424
import java.io.Serializable;
25-
import java.util.Collections;
26-
import java.util.Objects;
27-
import java.util.Optional;
28-
import java.util.Set;
25+
import java.util.*;
2926
import java.util.function.Predicate;
3027
import java.util.stream.Collectors;
3128

@@ -89,8 +86,21 @@ public interface Permission extends Serializable {
8986
*/
9087
String getId();
9188

89+
/**
90+
* @return 权限名称
91+
*/
9292
String getName();
9393

94+
/**
95+
* @return 其他拓展字段
96+
*/
97+
Map<String, Object> getOptions();
98+
99+
default Optional<Object> getOption(String key) {
100+
return Optional.ofNullable(getOptions())
101+
.map(map -> map.get(key));
102+
}
103+
94104
/**
95105
* 用户对此权限的可操作事件(按钮)
96106
* <p>
@@ -112,12 +122,13 @@ public interface Permission extends Serializable {
112122
Set<DataAccessConfig> getDataAccesses();
113123

114124

115-
default Set<DataAccessConfig> getDataAccesses(String action){
125+
default Set<DataAccessConfig> getDataAccesses(String action) {
116126
return getDataAccesses()
117127
.stream()
118-
.filter(conf->conf.getAction().equals(action))
128+
.filter(conf -> conf.getAction().equals(action))
119129
.collect(Collectors.toSet());
120130
}
131+
121132
/**
122133
* 查找数据权限配置
123134
*
@@ -198,6 +209,7 @@ static Permission.DataAccessPredicate<ScopeDataAccessConfig> scope(String action
198209
}
199210

200211
Permission copy();
212+
201213
/**
202214
* 数据权限查找判断逻辑接口
203215
*

hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/SimplePermission.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import org.hswebframework.web.authorization.Permission;
55
import org.hswebframework.web.authorization.access.DataAccessConfig;
66

7-
import java.util.Collections;
8-
import java.util.HashSet;
9-
import java.util.Set;
7+
import java.util.*;
108

119
/**
1210
* @author zhouhao
@@ -28,6 +26,7 @@ public class SimplePermission implements Permission {
2826

2927
private Set<DataAccessConfig> dataAccesses;
3028

29+
private Map<String, Object> options;
3130

3231
public Set<String> getActions() {
3332
if (actions == null) {
@@ -43,13 +42,16 @@ public Set<DataAccessConfig> getDataAccesses() {
4342
return dataAccesses;
4443
}
4544

46-
public Permission copy(){
47-
SimplePermission permission =new SimplePermission();
45+
public Permission copy() {
46+
SimplePermission permission = new SimplePermission();
4847

4948
permission.setId(id);
5049
permission.setName(name);
5150
permission.setActions(new HashSet<>(getActions()));
5251
permission.setDataAccesses(new HashSet<>(getDataAccesses()));
52+
if (options != null) {
53+
permission.setOptions(new HashMap<>(options));
54+
}
5355
return permission;
5456
}
5557
}

hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveAuthenticationInitializeService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ protected SimpleAuthentication handlePermission(SimpleAuthentication authenticat
121121
SimplePermission permission = new SimplePermission();
122122
permission.setId(permissionEntity.getId());
123123
permission.setName(permissionEntity.getName());
124+
permission.setOptions(permissionEntity.getProperties());
124125
Set<DataAccessConfig> configs = new HashSet<>();
125126

126127
for (AuthorizationSettingEntity permissionSetting : permissionSettings) {

0 commit comments

Comments
 (0)