No caso da requisição não incluir um token, ou incluir mas ele estiver inválido ou expirado, o retorno do 403 já é suficiente para indicar o problema para o cliente que disparou a requisição.
Mas caso você queira personalizar esse comportamento e deseja tratar as exceptions do Spring Security, vai ser necessário configurar na classe SecurityConfigurations
. Exemplo:
//parte anterior do codigo omitida
.and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
.exceptionHandling().authenticationEntryPoint(new AuthenticationEntryPoint() {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
response.setStatus(400);
response.setCharacterEncoding("UTF-8");
response.getWriter().write("Token JWT inválido, expirado ou ausente!");
}
})
.and().build();