diff --git a/src/main/kotlin/com/android/trisolarisserver/config/DebugExceptionResolver.kt b/src/main/kotlin/com/android/trisolarisserver/config/DebugExceptionResolver.kt new file mode 100644 index 0000000..9deda33 --- /dev/null +++ b/src/main/kotlin/com/android/trisolarisserver/config/DebugExceptionResolver.kt @@ -0,0 +1,23 @@ +package com.android.trisolarisserver.config + +import jakarta.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletResponse +import org.springframework.stereotype.Component +import org.springframework.web.servlet.HandlerExceptionResolver +import org.springframework.web.servlet.ModelAndView + +@Component +class DebugExceptionResolver : HandlerExceptionResolver { + override fun resolveException( + request: HttpServletRequest, + response: HttpServletResponse, + handler: Any?, + ex: Exception + ): ModelAndView? { + if (request.getHeader("X-Debug-Auth") == "1" && !response.isCommitted) { + val msg = ex.message?.take(200) ?: "" + response.setHeader("X-Exception", "${ex::class.java.simpleName}:$msg") + } + return null + } +}