package com.sandu.ximon.admin.security; import com.sandu.common.security.LoginUserInfo; import com.sandu.ximon.dao.enums.AdministratorEnums; import org.springframework.security.core.GrantedAuthority; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * @author chenjiantian * @date 2021/8/27 18:28 * 权限控制 */ @Service(value = "el") public class PermissionConfig { public Boolean check(String... permissions) { LoginUserInfo loginUserInfo = SecurityUtils.getUserDetails(); if (loginUserInfo == null || loginUserInfo.getPermission() == null) { return false; } // // 客户没有权限管理 // if(AdministratorEnums.CUSTOMER.getCode().equals(loginUserInfo.getAdministratorType())){ // return true; // } String[] split = loginUserInfo.getPermission().split(","); // 获取当前用户的所有权限 List elPermissions = Arrays.stream(split).collect(Collectors.toList()); // 判断当前用户的所有权限是否包含接口上定义的权限 return elPermissions.contains("admin") || Arrays.stream(permissions).anyMatch(elPermissions::contains); } }