一.实现拦截器token验证
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@Component
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler)throws Exception{
//令牌验证
String token=request.getHeader("Authorization");
//验证token
try{
Map<String,Object> claims= JwtUtil.parseToken(token);
return true;
}catch (Exception e){
//http响应状态码
response.setStatus(401);
//不放行
return false;
}
}
}
二.注册拦截器+放行接口
import com.example.demo.util.interceptors.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 配置类-拦截器
*/
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private LoginInterceptor loginInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry){
//放行登录接口和注册接口
//"/user/login","/user/register"——想要放行的接口
registry.addInterceptor(loginInterceptor).excludePathPatterns("/user/login","/user/register");
}
}