SSM配置自定义拦截器以及自定义注解完成权限拦截

it2022-05-05  154

SSM配置自定义拦截器以及自定义注解完成权限拦截

新建注解

1.使用@Target说明了Annotation所修饰的对象范围:本例使用TYPE(类)和METHOD(方法)。 2.使用@Retention定义了该Annactioon被保留的生命周期,本例中限定RetentionPolicy.RUNTIME运行时有效(保留)。 3.@Inherited被标注是可以被继承的。

使用注解

设立value值为true

新建Inteceptor(拦截器)

实现HandlerInterceptor,并重写preHandle()等三个方法 @Component不能忘记,否则框架扫描不到 根据不同的权限要求写出方法: (本例先判断请求方法是否被新建注解所标注,如果未标注,判断它所属的类是否被标注,若标注返回true,接着判断当前用户是否拥有权限(判断数据库中所存储的path和method和当前所求的uri是否相同),两个条件均满足才认定其满足权限) 是否标注 是否拥有

配置新建拦截器

==/**==的意思是,所有方法都适用,你也可以进行详细设置 当然实现该接口不仅仅可以配置拦截器,还可以配置

在preHandle()中进行调用

因为当请求进入过滤器时,会先进入preHandle()方法,所以将权限判断放在preHandle()方法中进行使用。 ErrorMsg是自己写的带有参构造器的普通类,单纯写一个error信息


最新回复(0)