java - SpringBoot OAuth2 自定义异常响应

标签 java spring-boot spring-security oauth-2.0 spring-security-oauth2

有人可以帮助我自定义 SpringBoot 2 OAuth 2.0 的异常响应吗?基本上我需要将以下异常响应转化为一些自定义应用程序特定的响应。

{
    "error": "unauthorized",
    "error_description": "Full authentication is required to access this resource"
}

{
    "error": "invalid_token",
    "error_description": "Access token expired: sdfhjkudxnkjjkJJHGhgnbHnmbhJGJH"
}

{
    "timestamp": "2020-04-29T11:30:47.045+0000",
    "status": 404,
    "error": "Not Found",
    "message": "No message available",
    "path": "/testf"
}

类似于

{
    "status": "error",
    "message": "Full authentication is required to access this resource"
}

真的很期待 谢谢...

最佳答案

您可以在配置 HttpSecurity 时针对 403 执行此操作:

.exceptionHandling()     
.accessDeniedHandler(myCoolAccessDeniedHandler())

documentation 中指定的那样

其他两个可能会被您定义的某些 ExceptionHandler 捕获和处理:

public class MyExceptionHandlingController extends ResponseEntityExceptionHandler implements ErrorController

关于java - SpringBoot OAuth2 自定义异常响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61500860/

相关文章:

java - 如何使用多种布局,而面板之间没有空白?

java - 在 Spring Boot 中使用系统变量

json - 如何在 Spring Boot 中覆盖默认的 JSON 响应

java - 在具有命名空间的 Java 中,针对架构的 XML 验证失败

java - SSLSocket 不执行主机名验证

java - 观察服务 Java 7 轮询循环

spring-boot - 使用 spring-data-jpa 查找使用连接列

java - 为什么使用 j_username 和 SPRING_SECURITY_LAST_USERNAME 变量?

grails - 注销清除Grails中的Remember_me Cookie

java - 在 eclipse 之外将 Spring MVC 应用程序部署到 tomcat 的幕后会发生什么?