gpt4 book ai didi

ajax - Spring Boot - 外部 Tomcat 服务器 Ajax 身份验证失败消息

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:43 24 4
gpt4 key购买 nike

我正在使用 Spring Boot.war 文件部署到外部 Tomcat 服务器

我正在使用 Ajax/Restful 身份验证,并且我有以下处理身份验证失败的类:

@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {

response.sendError(HttpServletResponse.SC_UNAUTHORIZED, exception.getMessage());
}

当我使用嵌入式 Tomcat 服务器时,一切顺利,并且在身份验证失败时我得到以下 JSON:

{
"timestamp" : "2015-12-14T15:39:07.365+0000",
"status" : 401,
"error" : "Unauthorized",
"message" : "You have provided wrong credentials",
"path" : "/api/authentication"
}

但是,当使用外部 Tomcat 服务器时,我收到一个 HTML 响应,该响应会带来通常的 Tomcat 失败身份验证页面。有没有办法绕过外部服务器的这个问题?

最佳答案

解决方案就是不使用 sendError() 并提供状态代码并提供自定义异常序列化:

@Service
public class AjaxAuthenticationFailureHandler
extends SimpleUrlAuthenticationFailureHandler {

@Autowired
private ObjectMapper objectMapper;

@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.getWriter().write(objectMapper.writeValueAsString(exception));
response.getWriter().flush();
}


}

关于ajax - Spring Boot - 外部 Tomcat 服务器 Ajax 身份验证失败消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com