springboot中方法注解实现忽略权限验证IgnoreAuth

本文介绍了一种通过自定义注解@IgnoreAuth实现方法级权限验证绕过的方法,使得代码更加整洁优雅。通过在不需要权限验证的方法上添加@IgnoreAuth注解,再结合拦截器判断,可以有效地避免权限验证过程,适用于需要快速响应或公开访问的API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加入方法注解忽略权限验证,让你的代码更加优雅
1、忽略权限校验的方法注解IgnoreAuth,设定@Target使作用范围限定在方法上

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreAuth {
}

2、想不用权限验证的方法上,追加此注解

	@IgnoreAuth
	@GetMapping("list/{channelId}")
	public ResponseResult list(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
	}

3、在拦截器中,判断方法是否使用了此注解,如果使用了,就不进行权限验证

@Component
public class AuthorizationInterceptor implements HandlerInterceptor {
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
		IgnoreAuth annotation;
		if (handler instanceof HandlerMethod) {
			annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
		} else {
			return true;
		}
		// 如果有@IgnoreAuth注解,则不验证token
		if (annotation != null) {
			return true;
		}
    }
}

4、大功告成,自定义的注解,让代码显得更加优雅。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值