默认返回401未认证,可以进行修改
@Override
protected boolean sendChallenge(ServletRequest request, ServletResponse response) {
HttpServletResponse httpResponse = WebUtils.toHttp(response);
try {
httpResponse.setStatus(HttpServletResponse.SC_OK);
httpResponse.setContentType(MediaType.APPLICATION_JSON_UTF8.toString());
httpResponse.getWriter().write(authService.buildChallengeResponse());
} catch (IOException e) {
log.error("error when sending authorization challenge", e);
httpResponse.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
return false;
}
buildChallengeResponse里的具体的代码
String buildChallengeResponse() throws IOException {
String code = ErrorCodes.SESSION_EXPIRATION;
String message = messageSource.getMessage(code, null, Locale.getDefault());
ApiResponse<Void> response = ApiResponse.failure(code, message, null);
return objectMapper.writeValueAsString(response);
}