一犀勒、對(duì)某個(gè)方法加上權(quán)限訪問
①在方法上加上這個(gè)注解@ps是spring容器中的一個(gè)服務(wù)類僻孝,我們自己實(shí)現(xiàn)的消略,不采用springSecurity的權(quán)限校驗(yàn)方法锌仅,hasPermission是ps中的一個(gè)判斷權(quán)限的方法瞒渠,參數(shù)是權(quán)限
image.png
②實(shí)現(xiàn)ps這個(gè)類
@Service("ps")
public class PermissionService {
@Autowired
private MenuService menuService;
/**
* 自定義權(quán)限校驗(yàn)類良蒸,替換springSecurity的,判斷當(dāng)前用戶是否具有permission
* @param permission 要判斷的權(quán)限
* @return
*/
public boolean hasPermission(String permission){
//如果是超級(jí)管理員伍玖,直接返回true嫩痰,也就是具有該權(quán)限
if (SecurityUtils.isAdmin()){
return true;
}
//獲取普通用戶的所有權(quán)限,然后判斷permission是否包含在內(nèi)
Long userId = SecurityUtils.getUserId();
List<String> perms = menuService.selectPermsByUserId(userId);
return perms.contains(permission);
}
}