Sa-token角色权限认证

在平常使用Sa-token中可能会出现管理员和普通用户,管理员能用的接口,普通用户不能用这种场景,就需要用到我们的角色权限认证,这样可以更快捷的区分不同的用户角色

所谓权限认证,核心逻辑就是判断一个账号是否拥有指定权限:

  • 有,就让你通过。
  • 没有?那么禁止访问

 官网上是这样说明这种情况的

这里直接提供代码

 @SaCheckRole(value = {"管理员","超级管理员"},mode = SaMode.OR)
    @ApiOperation(value = "只有管理员身份才能进入")
    @PostMapping("/rules")
    public Result rules() {
        return Result.success(attendanceService.rules());
    }

我们这个只需要在@Controller层声明这个就可以校验,不过在之前,我们需要实现一个接口

@Component
public class StpInterfaceImpl implements StpInterface {

    @Resource
    private RoleService roleService;

    //添加某些权限可以访问的
    @Override
    public List<String> getPermissionList(Object o, String s) {
        return null;
    }

    //添加某些角色可以访问的
    @Override
    public List<String> getRoleList(Object o, String s) {
        MPJLambdaWrapper<Role> wrapper = new MPJLambdaWrapper<>();
        wrapper.select(Role::getId)
        Role one = roleService.getOne(wrapper);
        List<String> list = new ArrayList<>();
        list.add(one.getId());
        return list;
    }
}

配置这个类实现StpInterface接口就可以使用了,这里需要说明下,我们是添加角色的,所以在重写的接口中,我们访问数据库,每次进来的是什么人进来,这里就需要和数据库进行交互,然后再和@SaCheckRole进行搭配,就可以在每次获取用户是什么角色的时候,判断在这个注解的value中没有就可以进行拦截了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈Demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值