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

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信息

SSM框架中,可以使用@Configuration注解配置拦截器。在配置类中继承WebMvcConfigurationSupport类,并实现addInterceptors方法来添加拦截器。例如,在SpringMvcSupport类中,可以定义配置类,并在其中重写addInterceptors方法来添加拦截器。 另外,在SpringMvcConfig类中,可以使用@Configuration注解标识该类为配置类,并通过@ComponentScan指定扫描Controller所在的包来开启SpringMVC注解支持。然后,使用@EnableWebMvc注解来启用SpringMVC,并在addInterceptors方法中添加自定义拦截器。 而在WebMvcConfig类中,同样使用@Configuration注解标识为配置类,并实现WebMvcConfigurer接口。在addInterceptors方法中使用@Bean注解实例化自定义拦截器,并将其添加到拦截器链中。 通过@Configuration注解和实现addInterceptors方法,可以方便地配置拦截器,使其在SSM框架中生效。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [SpringMVC【SSM整合小案例+拦截器】,SpringMVC基础入门第二篇](https://blog.csdn.net/hariya/article/details/127291474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [SSM注解方式配置拦截器](https://blog.csdn.net/weixin_42431275/article/details/104242486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值