自定义实现@Security进行权限控制

前言

在上一篇博客中,我们自定义实现了一个mvc框架,那么现在我们在此基础上,通过注解的方式添加一个权限的控制。
这个注解用于添加在Controller类或者是handler方法上,通过给注解value赋值,表明这个controller或者handler有哪些用户是可以有权限访问的。
其中如果只给controller类添加该注解,表示这个controller类里面所有的方法都可以被该注解声明的用户访问,如果controller有该注解,handler也添加了注解,那么这个handler的访问权限以这个handler的注解为准

@Security

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
@Documented
public @interface Security {
    String[] value();
}

改造handler类

在这里插入图片描述
添加用户列表字段

改造DispatherServlet

1、改造intiHandlerMapping()方法
在这里插入图片描述
2、改造dopost()方法
在这里插入图片描述

测试

首先为handler方法添加上@Security注解

@Controller
@RequestMapping("/testController")
public class TestController {
    @Autowired
    private TestService testService;
    @RequestMapping("/test")
    @Security({"zhangsan","lisi"})
    public void test(String username){
        testService.query(username);
    }
}

运行测试:

测试一:没有权限
在这里插入图片描述
测试二:有权限
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值