@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);
}
}
运行测试:
测试一:没有权限
测试二:有权限