在BearerTokenAuthenticationFilter类中,添加以下代码:
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String authorizationHeader = request.getHeader("Authorization");
if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {
HttpServletResponse response = (HttpServletResponse) res;
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized");
return;
}
chain.doFilter(req, res);
}
这将检查请求中是否包含Authorization头,并检查其值是否为“Bearer”。如果没有,则返回401未授权HTTP响应。如果头是存在的并且具有正确的值,则继续处理链。通过添加这些检查,将禁止请求在缺少Authorization头的情况下通过BearerTokenAuthenticationFilter。