mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-09 08:57:16 +08:00
refactor: CRUD Api 忽略排除(放行)路径的权限校验
This commit is contained in:
@@ -22,8 +22,12 @@ import cn.dev33.satoken.context.model.SaRequest;
|
|||||||
import cn.dev33.satoken.sign.template.SaSignTemplate;
|
import cn.dev33.satoken.sign.template.SaSignTemplate;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.hutool.core.annotation.AnnotationUtil;
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import top.continew.admin.common.base.service.BaseService;
|
import top.continew.admin.common.base.service.BaseService;
|
||||||
import top.continew.admin.common.config.crud.CrudApiPermissionPrefixCache;
|
import top.continew.admin.common.config.crud.CrudApiPermissionPrefixCache;
|
||||||
|
import top.continew.starter.auth.satoken.autoconfigure.SaTokenExtensionProperties;
|
||||||
|
import top.continew.starter.core.util.ServletUtils;
|
||||||
|
import top.continew.starter.core.util.SpringWebUtils;
|
||||||
import top.continew.starter.extension.crud.annotation.CrudApi;
|
import top.continew.starter.extension.crud.annotation.CrudApi;
|
||||||
import top.continew.starter.extension.crud.controller.AbstractCrudController;
|
import top.continew.starter.extension.crud.controller.AbstractCrudController;
|
||||||
import top.continew.starter.extension.crud.enums.Api;
|
import top.continew.starter.extension.crud.enums.Api;
|
||||||
@@ -61,6 +65,14 @@ public class BaseController<S extends BaseService<L, D, Q, C>, L, D, Q, C> exten
|
|||||||
.hasAnnotation(targetClass, SaIgnore.class)) {
|
.hasAnnotation(targetClass, SaIgnore.class)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 忽略排除(放行)路径
|
||||||
|
SaTokenExtensionProperties saTokenExtensionProperties = SpringUtil.getBean(SaTokenExtensionProperties.class);
|
||||||
|
if (saTokenExtensionProperties.isEnabled()) {
|
||||||
|
String[] excludePatterns = saTokenExtensionProperties.getSecurity().getExcludes();
|
||||||
|
if (SpringWebUtils.isMatch(ServletUtils.getRequestPath(), excludePatterns)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
// 校验权限,例如:创建用户接口(POST /system/user) => 校验 system:user:create 权限
|
// 校验权限,例如:创建用户接口(POST /system/user) => 校验 system:user:create 权限
|
||||||
String permissionPrefix = CrudApiPermissionPrefixCache.get(targetClass);
|
String permissionPrefix = CrudApiPermissionPrefixCache.get(targetClass);
|
||||||
String apiName = getApiName(crudApi.value());
|
String apiName = getApiName(crudApi.value());
|
||||||
|
Reference in New Issue
Block a user