后端开发5——springboot添加拦截器
1 添加拦截器配置config——InterceptorConfig
拦截器配置类用于在服务启动时配置拦截器。
点击展开
package com.ruoyi.trustedAsset.config;
import com.ruoyi.trustedAsset.interceptor.AuthorityInterceptor;
import …
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {
@Bean
public AuthorityInterceptor loginInterceptor(){
return new AuthorityInterceptor();
}
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginInterceptor())
.addPathPatterns("/**") // 要拦截的请求
.excludePathPatterns("/trustedAsset/getBlocks"); // 不拦截的请求
super.addInterceptors(registry);
}
}
2 添加拦截器interceptor——xxxInterceptor
拦截器的实现类。
点击展开
package com.wrj.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AuthorityInterceptor implements HandlerInterceptor {
//controller方法调用之前执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//获取请求头中的token
String token= request.getHeader("Authorization");
if(token==null){
response.setContentType("application/json; charset=utf-8");
response.getWriter().write("无访问权限");
return false;
}
System.out.println("权限拦截器");
return true;
}
//controller方法处理完成后执行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("拦截后执行");
}
}
说明:preHandle返回true则会继续执行controller方法,返回false则会直接返回请求错误信息。

浙公网安备 33010602011771号