SpringBoot使用拦截器实现操作权限检查
程序员文章站
2022-03-19 16:00:59
操作权限检查SpringBoot项目中,使用拦截器实现权限检查1、权限验证拦截器//实现HandlerInterceptor接口,为拦截器@Slf4jpublic class PermissionInterceptor implements HandlerInterceptor { @Autowired private JwtTokenUtil jwtTokenUtil; @Autowired private PermissionService permissi...
SpringBoot项目中,使用拦截器实现权限检查
1、编写权限验证拦截器
新建拦截器类
PermissionInterceptor
,实现HandlerInterceptor
接口,即为自定义拦截器
//实现HandlerInterceptor接口,为拦截器
@Slf4j
public class PermissionInterceptor implements HandlerInterceptor {
@Autowired
private util util;
@Autowired
private PermissionService permissionService;
//controller层之前执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//从请求头中获取所需参数
String token = request.getHeader("???").split(" ")[1];
boolean isHavePermission = checkPermission(token);
//返回 true,放行 false,拦截
if (isHavePermission){
log.info("权限检查通过::操作放行");
return true;
} else{
//设置response,手动返回response响应
response.setContentType("application/json;charset=utf-8");
Result<String> error = ResultBuilder.failWithData("权限检查失败::当前用户没有该权限", ResultCode.PERMISSION_NO_ACCESS);
Gson gson = new GsonBuilder().create();
response.getWriter().print(gson.toJson(error));
return false;
}
}
}
2、注册自定义的权限验证拦截器,做mvc扩展
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
//注册拦截器bean
//tip:使用该种方式注册,可在拦截其中使用@AutoWired注解装配bean。使用其他方式(比如new PermissionInterceptor())可能导致装配为null的情况
//详见:https://blog.csdn.net/ycf921244819/article/details/91388440
@Bean
public PermissionInterceptor permissionInterceptor(){
return new PermissionInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(permissionInterceptor())
//.excludePathPatterns("/permission/get")
//添加拦截路径 /** :拦截所有路径
.addPathPatterns("/??/??","/???/???");
}
}
本文地址:https://blog.csdn.net/a14654/article/details/110383829
推荐阅读
-
SpringBoot使用AOP+注解实现简单的权限验证的方法
-
【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限
-
在SpringBoot项目中使用JPA实现简单的数据库操作
-
SpringBoot使用拦截器实现操作权限检查
-
SpringBoot如何通过自定义注解实现权限检查详解
-
struts2使用拦截器实现权限控制
-
SpringBoot中使用Spring Security实现权限控制
-
SpringBoot中使用Spring Security实现权限控制
-
【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限
-
SpringBoot使用拦截器实现操作权限检查