SpringMVC拦截器中获得Controller方法名和注解信息(用于验证权限)
java1234
共 1797字,需浏览 4分钟
· 2021-10-13
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
方法一:通过request获得用户的URI,再逐一循环判断是否可以操作。只是这种方法很让人难受。
方法二:通过用户要访问的方法来判断是否有权限:
方法三:自定义注解
自定义注解代码:
@Retention(RUNTIME)
@Target(METHOD)
public @interface MyOperation {
String value() default "";//默认为空,因为名字是value,实际操作中可以不写"value="
}
Controller代码:
@Controller("testController")
public class TestController {
@MyOperation("用户修改")//主要看这里
@RequestMapping("test")
@ResponseBody
public String test(String id) {
return "Hello,2018!"+id;
}
}
拦截器的代码:
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("进入拦截器");
if(handler instanceof HandlerMethod) {
HandlerMethod h = (HandlerMethod)handler;
System.out.println("用户想执行的操作是:"+h.getMethodAnnotation(MyOperation.class).value());
//判断后执行操作...
}
return HandlerInterceptor.super.preHandle(request, response, handler);
}
在每个方法上面加注解太麻烦啦,可以在类上加注解
@Retention(RUNTIME)
@Target(TYPE)
public @interface MyOperation {
String value() default "";
}
//拦截器中这样获得
h.getMethod().getDeclaringClass().getAnnotation(MyOperation.class);
我可以获取requestMapping,不用创建自定义注解啊,值得注意的是,不要使用GetMapping等,要使用requestMapping
作者 | howroad
来源 | csdn.net/howroad/article/details/80220320
评论
一站式解决方案:基于 Arthas 实现服务发现和权限控制
来源:juejin.cn/post/7281849496983994383👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接
小哈学Java
0
互联网晚报 | 大麦网已退款凤凰传奇演唱会“柱子票”;钟薛高再成被执行人;iPhone 16或取消实体音量键和电源键
大麦网回应凤凰传奇演唱会买到“柱子票”:已退票退款据报道,凤凰传奇2024巡回演唱会常州站演出结束的第二天,有网友称自己在大麦网买到“柱子票”,因为观看效果不佳,要求退款被拒。23日,记者从涉事网友处了解到,大麦方面给出了退款建议,但被其拒绝,“我希望平台退款加赔偿,并重视屡次出现的‘柱子票’问题。
产品刘
0
面试官:在原生input上面使用v-model和组件上面使用有什么区别?
前言面试官:vue3的v-model都用过吧,来讲讲。粉丝:v-model其实就是一个语法糖,在编译时v-model会被编译成:modelValue属性和@update:modelValue事件。一般在子组件中定义一个名为modelValue的props来接收父组件v-model传递的值,然后当子组
高级前端进阶
0
AI论文写作工具和生成器(一)
随着人工智能和大模型的迅猛发展,AI对研究人员和学生提供了极大的写作便利。本文将介绍市面上常用的AI论文写作工具,帮助你提高论文写作效率并遵循学术道德。请仅将AI论文生成器视为辅助参考手段,切勿直接挪用全文。XPaper AlXPaper AI是由点击式创作工具晓语台推出的一款论文写作生成平台,只需
IQ前端
0
Langchain使用 | 模型、提示和解析器、存储
零、LangChain介绍为各种不同基础模型提供统一接口- 帮助管理提示的框架- 一套中心化接口,用于处理长期记忆(参见Memory)、外部数据(参见Indexes)、其他 LLM(参见Chains)以及 LLM 无法处理的任务的其他代理(例如,计算或搜索)。总的来说,有六大核心模块:Models:
Python之王
0
你真的理解 devDependencies 和 dependencies 的区别吗?
点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群作者:井柏然原文:https://juejin.cn/post/7135795969370619918你是否真的理解 devDependencies 和 dependencies 的区别?如果不能确切的回答、理解还停留在模糊的阶段,
前端Q
0
3人运营,不用投流,年翻十倍...这些头部商家如何在得物获得确定性新增长
是新朋友吗?记得先点蓝字关注我哦~这场硬仗一定要打,也一定要打赢。文/靳舒乔珠宝品牌周大生2022年一季报数据显示,2021年周大生营收91.55亿元,门店突破4500家,遂加快线上渠道布局。一次跟得物官方交流,感觉这款App上的年轻人非常活跃,很契合线上发展需求。那时,得物App更名一年有余,正打
调皮电商
2
智慧城市一张图,空天信息企业两条路
图源:《未来城市》纪录片撰文 | 朱君编辑 | 神璐璐审核 | 刘玉琳封面 | 《未来城市》纪录片4月2日,国家数据局就《深化智慧城市发展 推进城市全域数字化转型的指导意见》(以下简称《意见》)向社会公开征求意见,智慧城市建设方向再次明确。图源:国家数据局《意见》明确指出,鼓励有
泰伯网
5