增加支持在请求里增加skipPermission 可以跳过权限验证
This commit is contained in:
parent
57b2a2f880
commit
daa8776312
|
|
@ -1,10 +1,8 @@
|
|||
package com.bonus.common.security.auth;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.bonus.common.core.constant.SecurityConstants;
|
||||
import com.bonus.common.core.domain.R;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
|
|
@ -146,17 +144,32 @@ public class AuthLogic
|
|||
*/
|
||||
public void checkPermi(RequiresPermissions requiresPermissions, ProceedingJoinPoint joinPoint)
|
||||
{
|
||||
SecurityContextHolder.setPermission(StringUtils.join(requiresPermissions.value(), ","));
|
||||
if (requiresPermissions.logical() == Logical.AND) {
|
||||
try{
|
||||
checkPermiAnd(requiresPermissions.value());
|
||||
}catch (Exception e){
|
||||
//记录越权日志
|
||||
addErrorLogs(joinPoint,requiresPermissions);
|
||||
throw new NotPermissionException(requiresPermissions.value()[0]);
|
||||
//获取请求参数
|
||||
boolean needPermission = true;
|
||||
Object[] args = joinPoint.getArgs();
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
Object obj = args[i];
|
||||
if (Objects.nonNull(obj) && obj instanceof JSONObject) {
|
||||
JSONObject jsonObject = (JSONObject) obj;
|
||||
if ("1".equals(jsonObject.getStr("skipPermission"))) {
|
||||
needPermission = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (needPermission) {
|
||||
SecurityContextHolder.setPermission(StringUtils.join(requiresPermissions.value(), ","));
|
||||
if (requiresPermissions.logical() == Logical.AND) {
|
||||
try {
|
||||
checkPermiAnd(requiresPermissions.value());
|
||||
} catch (Exception e) {
|
||||
//记录越权日志
|
||||
addErrorLogs(joinPoint, requiresPermissions);
|
||||
throw new NotPermissionException(requiresPermissions.value()[0]);
|
||||
}
|
||||
} else {
|
||||
checkPermiOr(requiresPermissions.value());
|
||||
}
|
||||
} else {
|
||||
checkPermiOr(requiresPermissions.value());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue