html - 是否可以在 Spring Boot 中配置 OAuth2 以使用 JSON 而不是 HTML 响应 InvalidTokenException?
问题描述
我的 Spring Boot 应用程序OAuth2
用于安全和令牌管理。我正在使用无效令牌查询我的 REST 端点之一,以使用 Postman 测试其响应。端点以 401 InvalidTokenException 正确响应,但当我希望它以 JSON 响应时,响应内容是 HTML。这可以通过代码完成吗?
示例响应
<InvalidTokenException>
<error>invalid_token</error>
<error_description>Access token expired: … my token… </error_description>
</InvalidTokenException>
解决方案
将自定义添加AuthenticationFailureHandler
到您的安全配置中,然后在您的自定义实现中准备响应:
http.oauth2Login()
.failureHandler(customFailureHandler)
故障处理程序示例:
public class CustomFailureHandler extends SimpleUrlAuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException {
response.sendError(401, "XML HERE");
}
}
推荐阅读
- unicode - UnicodeEncodeError:“ascii”编解码器无法在位置 3 编码字符“\u30db”:序数不在范围内(128)
- python - 如何在类上调用 write()?
- esp8266 - esp8266 固件更新后不启动
- python-3.x - 在执行多处理池时跟踪字典中的值
- sql - 过滤表,以便不返回交换列重复的行
- configuration - Web.config 中无法识别的属性“requestPageSize”
- qt - 在 32 位 Qt5 应用程序中启用 LARGEADDRESSAWARE 是否安全?
- sql - 基于一列模式的 SAS/SQL 连接匹配另一列
- api - googleapi:错误 400:错误请求,失败前提条件
- tensorflow - 挤压一层的输出