鉴权修改

This commit is contained in:
张松 2025-11-08 11:45:24 +08:00
parent b10f9d24fb
commit 837d8d0b3a
1 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,47 @@
package com.czg.handler;
import cn.dev33.satoken.annotation.handler.SaAnnotationHandlerInterface;
import com.czg.annotation.SaAdminCheckPermission;
import com.czg.sa.StpKit;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
import cn.dev33.satoken.annotation.SaMode;
/**
* 员工权限校验
* @author Administrator
*/
@Component
@Slf4j
public class SaAdminCheckPermissionHandler implements SaAnnotationHandlerInterface<SaAdminCheckPermission> {
@Override
public Class<SaAdminCheckPermission> getHandlerAnnotationClass() {
return SaAdminCheckPermission.class;
}
@Override
public void checkMethod(SaAdminCheckPermission annotation, Method method) {
// 2 如果是管理员直接放行
if (StpKit.USER.hasRole("admin")) {
log.debug("[SaAdminCheckPermissionHandler] 管理员免校验权限: userId={}", StpKit.USER.getLoginId());
return;
}
// 3 非管理员执行权限校验
String[] permissions = annotation.value();
SaMode mode = annotation.mode();
if (permissions != null && permissions.length > 0) {
if (mode == SaMode.AND) {
StpKit.USER.checkPermissionAnd(permissions);
} else {
StpKit.USER.checkPermissionOr(permissions);
}
}
log.debug("[SaAdminCheckPermissionHandler] 非管理员执行权限校验: userId={}", StpKit.USER.getLoginId());
}
}