mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 10: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.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