我需要一些帮助。
我在SPRING Tool Suite上构建了一个API,该API会在发布API上的任何操作之前验证JWT。 那就是我的JWT过滤器:
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain filterChain
) throws IOException, ServletException {
try {
Authentication authentication = TokenAuthenticationService.getAuthentication((HttpServletRequest) request);
if (authentication == null) {
System.out.println("auth null");
((HttpServletResponse) response).sendError(BackEndUtilities.INVALID_TOKEN, BackEndUtilities.ERROR_MSG_INVALID_TOKEN);
}
SecurityContextHolder.getContext().setAuthentication((Authentication) authentication);
}catch(ExpiredJwtException ex) {
((HttpServletResponse) response).sendError(BackEndUtilities.INVALID_TOKEN);
}
filterChain.doFilter(request, response);
}
当我在身份验证中获得空值时,我会发送HTTP状态401告知需要登录。
常数BackEndUtilities.INVALID_TOKEN是int值401。当我在STS服务器上运行API时,会得到此值,但是当我在TOMCAT 8.5上部署war文件时,我会不断获得HTTP状态403。
在两种情况下,我一直在控制台上获取字符串“ auth null”,即仅在身份验证为null时出现。但是,为什么TOMCAT 8.5会“改变”状态?
有人知道为什么它不断发生吗?
答案 0 :(得分:0)
我明白了。
(((HttpServletResponse)响应).sendError(BackEndUtilities.INVALID_TOKEN,BackEndUtilities.ERROR_MSG_INVALID_TOKEN);
此行停止了sts上的运行处理,但TOMCAT上没有发生。