springboot中通过jwt令牌校验以及前端token请求头进行登录拦截实战
import io.jsonwebtoken.Claims;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JwtInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
final String authHeader = request.getHeader("Authorization");
if (authHeader != null && authHeader.startsWith("Bearer ")) {
String token = authHeader.substring(7);
try {
Claims claims = JwtTokenUtil.parseToken(token);
if (claims.get("role") != null) {
request.setAttribute("role", claims.get("role"));
return true;
}
} catch (Exception e) {
// 处理异常情况,例如token无效等
}
}
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return false;
}
}
这个代码实例展示了如何在Spring Boot中创建一个拦截器来处理JWT令牌的验证。拦截器从请求头中提取Bearer令牌,然后使用JwtTokenUtil类对其进行解析。如果解析成功且token有效,则允许继续请求处理;否则,将响应状态设置为未授权(401),并返回false,中断请求处理。
评论已关闭