mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 00:57:13 +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.stp.StpUtil; | ||||
| 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.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.controller.AbstractCrudController; | ||||
| 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)) { | ||||
|             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 权限 | ||||
|         String permissionPrefix = CrudApiPermissionPrefixCache.get(targetClass); | ||||
|         String apiName = getApiName(crudApi.value()); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user