init: 클린 기반 auth 서버 설계

This commit is contained in:
DongHyeonka
2026-07-24 14:30:18 +09:00
parent 471db0203d
commit 8a1ac1e769
3642 changed files with 275893 additions and 1 deletions
@@ -0,0 +1,113 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - error_endpoint_collapses_5xx_to_common_999_while_preserving_status()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ApiErrorControllerIntegrationTest</a> &gt;
<span class="breadcrumb">error_endpoint_collapses_5xx_to_common_999_while_preserving_status()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>error_endpoint_collapses_5xx_to_common_999_while_preserving_status()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.011s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-error_endpoint_collapses_5xx_to_common_999_while_preserving_status()">2026-05-12T15:59:36.369+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:36.370+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:36.371+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:36.373+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.config.web.ApiErrorController#error(HttpServletRequest)
2026-05-12T15:59:36.374+09:00 ERROR 3742337 --- [ Test worker] [traceId=] c.p.auth.config.web.ApiErrorController : Unhandled error response. method=GET requestPath=/some/path status=503
2026-05-12T15:59:36.375+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:36.375+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=COMMON-999, message=예상하지 못한 오류가 발생했습니다., data=null, errors=null, trace (truncated)...]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-error_endpoint_collapses_5xx_to_common_999_while_preserving_status()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,113 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - error_endpoint_falls_back_to_unhandled_client_error_for_unmapped_4xx()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ApiErrorControllerIntegrationTest</a> &gt;
<span class="breadcrumb">error_endpoint_falls_back_to_unhandled_client_error_for_unmapped_4xx()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>error_endpoint_falls_back_to_unhandled_client_error_for_unmapped_4xx()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.009s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-error_endpoint_falls_back_to_unhandled_client_error_for_unmapped_4xx()">2026-05-12T15:59:36.431+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:36.431+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:36.432+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:36.434+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.config.web.ApiErrorController#error(HttpServletRequest)
2026-05-12T15:59:36.435+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.auth.config.web.ApiErrorController : Unhandled error response. method=GET requestPath=/teapot status=418
2026-05-12T15:59:36.435+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:36.435+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-013, message=처리하지 못한 클라이언트 오류입니다., data=null, errors=null, traceI (truncated)...]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-error_endpoint_falls_back_to_unhandled_client_error_for_unmapped_4xx()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,113 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - error_endpoint_handles_unknown_status_code_safely()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ApiErrorControllerIntegrationTest</a> &gt;
<span class="breadcrumb">error_endpoint_handles_unknown_status_code_safely()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>error_endpoint_handles_unknown_status_code_safely()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.013s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-error_endpoint_handles_unknown_status_code_safely()">2026-05-12T15:59:36.382+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:36.382+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:36.383+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:36.386+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.config.web.ApiErrorController#error(HttpServletRequest)
2026-05-12T15:59:36.386+09:00 ERROR 3742337 --- [ Test worker] [traceId=] c.p.auth.config.web.ApiErrorController : Unhandled error response. method=GET requestPath=/some/path status=500
2026-05-12T15:59:36.387+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:36.387+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=COMMON-999, message=예상하지 못한 오류가 발생했습니다., data=null, errors=null, trace (truncated)...]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-error_endpoint_handles_unknown_status_code_safely()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,113 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - error_endpoint_preserves_404_status_and_classifies_as_resource_not_found()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ApiErrorControllerIntegrationTest</a> &gt;
<span class="breadcrumb">error_endpoint_preserves_404_status_and_classifies_as_resource_not_found()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>error_endpoint_preserves_404_status_and_classifies_as_resource_not_found()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.017s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-error_endpoint_preserves_404_status_and_classifies_as_resource_not_found()">2026-05-12T15:59:36.397+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:36.398+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:36.399+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:36.403+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.config.web.ApiErrorController#error(HttpServletRequest)
2026-05-12T15:59:36.404+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.auth.config.web.ApiErrorController : Unhandled error response. method=GET requestPath=/some/missing/path status=404
2026-05-12T15:59:36.406+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:36.407+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-005, message=요청한 리소스를 찾을 수 없습니다., data=null, errors=null, traceId (truncated)...]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-error_endpoint_preserves_404_status_and_classifies_as_resource_not_found()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,113 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - error_endpoint_preserves_405_status_and_classifies_as_method_not_allowed()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ApiErrorControllerIntegrationTest</a> &gt;
<span class="breadcrumb">error_endpoint_preserves_405_status_and_classifies_as_method_not_allowed()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>error_endpoint_preserves_405_status_and_classifies_as_method_not_allowed()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.015s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-error_endpoint_preserves_405_status_and_classifies_as_method_not_allowed()">2026-05-12T15:59:36.415+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:36.415+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:36.416+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:36.423+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.config.web.ApiErrorController#error(HttpServletRequest)
2026-05-12T15:59:36.423+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.auth.config.web.ApiErrorController : Unhandled error response. method=GET requestPath=/some/path status=405
2026-05-12T15:59:36.424+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:36.424+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-003, message=지원하지 않는 HTTP 메서드입니다., data=null, errors=null, traceI (truncated)...]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-error_endpoint_preserves_405_status_and_classifies_as_method_not_allowed()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,128 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - error_endpoint_treats_missing_status_attribute_as_500()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ApiErrorControllerIntegrationTest</a> &gt;
<span class="breadcrumb">error_endpoint_treats_missing_status_attribute_as_500()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>error_endpoint_treats_missing_status_attribute_as_500()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
<li>
<a class="" href="#">error output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.579s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-error_endpoint_treats_missing_status_attribute_as_500()">2026-05-12T15:59:36.143+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:36.143+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:36.145+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:36.197+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6a1a5f293239553d3021d05ea8a47104] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.config.web.ApiErrorController#error(HttpServletRequest)
2026-05-12T15:59:36.207+09:00 ERROR 3742337 --- [ Test worker] [traceId=6a1a5f293239553d3021d05ea8a47104] c.p.auth.config.web.ApiErrorController : Unhandled error response. method=GET requestPath=/error status=500
2026-05-12T15:59:36.256+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6a1a5f293239553d3021d05ea8a47104] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:36.261+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6a1a5f293239553d3021d05ea8a47104] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=COMMON-999, message=예상하지 못한 오류가 발생했습니다., data=null, errors=null, trace (truncated)...]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-error_endpoint_treats_missing_status_attribute_as_500()">Copy</button>
</span>
</div>
<div class="tab">
<h2>error output</h2>
<span class="code">
<pre id="root-0-test-stderr-error_endpoint_treats_missing_status_attribute_as_500()">Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build as described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
WARNING: A Java agent has been loaded dynamically (/home/donghyeon/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.17.8/f09415827a71be7ed621c7bd02550678f28bc81c/byte-buddy-agent-1.17.8.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stderr-error_endpoint_treats_missing_status_attribute_as_500()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,133 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.AuthApplicationTests</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.AuthApplicationTests</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>AuthApplicationTests</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.011s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">contextLoads()</td>
<td class="path" hidden="">contextLoads()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.004s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-com.project.auth.AuthApplicationTests">2026-05-12T15:59:36.448+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [AuthApplicationTests]: using SpringBootContextLoader
2026-05-12T15:59:36.449+09:00 INFO 3742337 --- [ Test worker] [traceId=] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.project.auth.AuthApplicationTests]: AuthApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
2026-05-12T15:59:36.449+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .b.t.c.SpringBootTestContextBootstrapper : Using ContextCustomizerFactory implementations for test class [AuthApplicationTests]: [SpringBootTestRandomPortContextCustomizerFactory, OnFailureConditionReportContextCustomizerFactory, OverrideAutoConfigurationContextCustomizerFactory, ImportsContextCustomizerFactory, PropertyMappingContextCustomizerFactory, ExcludeFilterContextCustomizerFactory, TypeExcludeFiltersContextCustomizerFactory, DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory, DuplicateJsonObjectContextCustomizerFactory, BeanOverrideContextCustomizerFactory, MockServerContainerContextCustomizerFactory, DynamicPropertiesContextCustomizerFactory]
2026-05-12T15:59:36.450+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .b.t.c.SpringBootTestContextBootstrapper : Using ContextCustomizers for test class [AuthApplicationTests]: [SpringBootTestRandomPortContextCustomizer, OnFailureConditionReportContextCustomizer, PropertyMappingContextCustomizer, ExcludeFilterContextCustomizer, DuplicateJsonObjectContextCustomizer, DynamicPropertiesContextCustomizer]
2026-05-12T15:59:36.451+09:00 INFO 3742337 --- [ Test worker] [traceId=] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.project.auth.AuthApplication for test class com.project.auth.AuthApplicationTests
2026-05-12T15:59:36.452+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners for test class [AuthApplicationTests]: [ServletTestExecutionListener, DirtiesContextBeforeModesTestExecutionListener, ApplicationEventsTestExecutionListener, BeanOverrideTestExecutionListener, DependencyInjectionTestExecutionListener, DirtiesContextTestExecutionListener, CommonCachesTestExecutionListener, TransactionalTestExecutionListener, SqlScriptsTestExecutionListener, WithSecurityContextTestExecutionListener, EventPublishingTestExecutionListener, ReactorContextTestExecutionListener, MockitoResetTestExecutionListener]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-com.project.auth.AuthApplicationTests">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - me_auto_registers_internal_user_when_subject_is_not_synchronized()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.AuthenticatedUserResourceServerIntegrationTest</a> &gt;
<span class="breadcrumb">me_auto_registers_internal_user_when_subject_is_not_synchronized()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>me_auto_registers_internal_user_when_subject_is_not_synchronized()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.027s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-me_auto_registers_internal_user_when_subject_is_not_synchronized()">2026-05-12T15:59:41.889+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0
2026-05-12T15:59:41.891+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:41.891+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:41.892+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:41.895+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.presentation.auth.controller.AuthenticatedUserController#me(AuthenticatedUser)
2026-05-12T15:59:41.896+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0 where uje1_0.provider=? and uje1_0.provider_subject=?
2026-05-12T15:59:41.898+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id from auth.users uje1_0 where uje1_0.email=? fetch first ? rows only
2026-05-12T15:59:41.900+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0 where uje1_0.id=?
2026-05-12T15:59:41.903+09:00 INFO 3742337 --- [ Test worker] [traceId=] audit.auth : KEYCLOAK_USER_AUTO_REGISTERED eventType=&quot;KEYCLOAK_USER_AUTO_REGISTERED&quot; provider=&quot;KEYCLOAK&quot; subject=&quot;keycloak-subject-1&quot;
2026-05-12T15:59:41.904+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : insert into auth.users (created_at,email,name,provider,provider_subject,id) values (?,?,?,?,?,?)
2026-05-12T15:59:41.906+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:41.906+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] m.m.a.RequestResponseBodyMethodProcessor : Writing [ApiResult[success=true, code=AUTHENTICATED_USER_LOADED, message=현재 사용자 조회가 완료되었습니다., data=Authentica (truncated)...]
2026-05-12T15:59:41.909+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select count(*) from auth.users uje1_0
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-me_auto_registers_internal_user_when_subject_is_not_synchronized()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,120 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - me_returns_401_when_no_authentication()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.AuthenticatedUserResourceServerIntegrationTest</a> &gt;
<span class="breadcrumb">me_returns_401_when_no_authentication()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>me_returns_401_when_no_authentication()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.020s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-me_returns_401_when_no_authentication()">2026-05-12T15:59:41.868+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0
2026-05-12T15:59:41.870+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : delete from auth.users where id=?
2026-05-12T15:59:41.871+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:41.871+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:41.872+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:41.878+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.a.c.a.s.SecurityAuditTrailWriter : Authentication required. actorId=anonymous method=GET requestPath=/api/v1/auth/me
2026-05-12T15:59:41.878+09:00 WARN 3742337 --- [ Test worker] [traceId=] audit.auth : AUTHENTICATION_REQUIRED eventType=&quot;AUTHENTICATION_REQUIRED&quot; actorId=&quot;anonymous&quot; method=&quot;GET&quot; requestPath=&quot;/api/v1/auth/me&quot;
2026-05-12T15:59:41.879+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.SecurityResponseExceptionHandler#handleAuthenticationException(AuthenticationException, HttpServletRequest)
2026-05-12T15:59:41.879+09:00 WARN 3742337 --- [ Test worker] [traceId=] p.a.c.w.SecurityResponseExceptionHandler : Authentication required. exceptionType=InsufficientAuthenticationException method=GET requestPath=/api/v1/auth/me errorCode=AUTH-001
2026-05-12T15:59:41.879+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.a.c.a.s.SecurityAuditTrailWriter : Authentication required. actorId=anonymous method=GET requestPath=/api/v1/auth/me
2026-05-12T15:59:41.879+09:00 WARN 3742337 --- [ Test worker] [traceId=] audit.auth : AUTHENTICATION_REQUIRED eventType=&quot;AUTHENTICATION_REQUIRED&quot; actorId=&quot;anonymous&quot; method=&quot;GET&quot; requestPath=&quot;/api/v1/auth/me&quot;
2026-05-12T15:59:41.880+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:41.880+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-001, message=인증이 필요합니다., data=null, errors=null, traceId=-, times (truncated)...]
2026-05-12T15:59:41.880+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.security.authentication.InsufficientAuthenticationException: Full authentication is required to access this resource]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-me_returns_401_when_no_authentication()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - me_returns_403_when_token_has_no_user_realm_role()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.AuthenticatedUserResourceServerIntegrationTest</a> &gt;
<span class="breadcrumb">me_returns_403_when_token_has_no_user_realm_role()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>me_returns_403_when_token_has_no_user_realm_role()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.288s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-me_returns_403_when_token_has_no_user_realm_role()">2026-05-12T15:59:41.103+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0
2026-05-12T15:59:41.134+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:41.135+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:41.136+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:41.148+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.a.c.a.s.SecurityAuditTrailWriter : Access denied. actorId=sha256:8013ed33ef1dd6f2 method=GET requestPath=/api/v1/auth/me
2026-05-12T15:59:41.150+09:00 WARN 3742337 --- [ Test worker] [traceId=] audit.auth : ACCESS_DENIED eventType=&quot;ACCESS_DENIED&quot; actorId=&quot;sha256:8013ed33ef1dd6f2&quot; method=&quot;GET&quot; requestPath=&quot;/api/v1/auth/me&quot;
2026-05-12T15:59:41.151+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.SecurityResponseExceptionHandler#handleAccessDeniedException(AccessDeniedException, HttpServletRequest)
2026-05-12T15:59:41.151+09:00 WARN 3742337 --- [ Test worker] [traceId=] p.a.c.w.SecurityResponseExceptionHandler : Access denied for authenticated principal. exceptionType=AuthorizationDeniedException method=GET requestPath=/api/v1/auth/me errorCode=AUTH-002
2026-05-12T15:59:41.152+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.a.c.a.s.SecurityAuditTrailWriter : Access denied. actorId=sha256:8013ed33ef1dd6f2 method=GET requestPath=/api/v1/auth/me
2026-05-12T15:59:41.152+09:00 WARN 3742337 --- [ Test worker] [traceId=] audit.auth : ACCESS_DENIED eventType=&quot;ACCESS_DENIED&quot; actorId=&quot;sha256:8013ed33ef1dd6f2&quot; method=&quot;GET&quot; requestPath=&quot;/api/v1/auth/me&quot;
2026-05-12T15:59:41.159+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:41.160+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-002, message=접근 권한이 없습니다., data=null, errors=null, traceId=-, tim (truncated)...]
2026-05-12T15:59:41.162+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.security.authorization.AuthorizationDeniedException: Access Denied]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-me_returns_403_when_token_has_no_user_realm_role()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,121 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - me_returns_409_when_subject_is_not_found_but_same_email_exists()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.AuthenticatedUserResourceServerIntegrationTest</a> &gt;
<span class="breadcrumb">me_returns_409_when_subject_is_not_found_but_same_email_exists()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>me_returns_409_when_subject_is_not_found_but_same_email_exists()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.642s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-me_returns_409_when_subject_is_not_found_but_same_email_exists()">2026-05-12T15:59:41.170+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0
2026-05-12T15:59:41.172+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:41.172+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:41.173+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:41.190+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0 where uje1_0.id=?
2026-05-12T15:59:41.230+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : insert into auth.users (created_at,email,name,provider,provider_subject,id) values (?,?,?,?,?,?)
2026-05-12T15:59:41.240+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.presentation.auth.controller.AuthenticatedUserController#me(AuthenticatedUser)
2026-05-12T15:59:41.631+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0 where uje1_0.provider=? and uje1_0.provider_subject=?
2026-05-12T15:59:41.647+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id from auth.users uje1_0 where uje1_0.email=? fetch first ? rows only
2026-05-12T15:59:41.658+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ApplicationExceptionHandler#handleBusinessException(BusinessException, HttpServletRequest)
2026-05-12T15:59:41.658+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.a.p.s.e.ApplicationExceptionHandler : Business exception. exceptionType=KeycloakAccountConflictException errorCode=AUTH-005 method=GET requestPath=/api/v1/auth/me
2026-05-12T15:59:41.659+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:41.660+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-005, message=Keycloak 계정과 연결할 수 없는 내부 사용자 정보입니다., data=null, erro (truncated)...]
2026-05-12T15:59:41.661+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.project.auth.application.auth.exception.KeycloakAccountConflictException: Keycloak 계정과 연결할 수 없는 내부 사용자 정보입니다.]
2026-05-12T15:59:41.691+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select count(*) from auth.users uje1_0
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-me_returns_409_when_subject_is_not_found_but_same_email_exists()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,118 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - me_reuses_existing_internal_user_when_subject_already_synchronized()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.AuthenticatedUserResourceServerIntegrationTest</a> &gt;
<span class="breadcrumb">me_reuses_existing_internal_user_when_subject_already_synchronized()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>me_reuses_existing_internal_user_when_subject_already_synchronized()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.053s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-me_reuses_existing_internal_user_when_subject_already_synchronized()">2026-05-12T15:59:41.814+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0
2026-05-12T15:59:41.826+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : delete from auth.users where id=?
2026-05-12T15:59:41.829+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:41.829+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:41.830+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:41.832+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0 where uje1_0.id=?
2026-05-12T15:59:41.833+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : insert into auth.users (created_at,email,name,provider,provider_subject,id) values (?,?,?,?,?,?)
2026-05-12T15:59:41.837+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.presentation.auth.controller.AuthenticatedUserController#me(AuthenticatedUser)
2026-05-12T15:59:41.839+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select uje1_0.id,uje1_0.created_at,uje1_0.email,uje1_0.name,uje1_0.provider,uje1_0.provider_subject,uje1_0.updated_at from auth.users uje1_0 where uje1_0.provider=? and uje1_0.provider_subject=?
2026-05-12T15:59:41.844+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:41.847+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] m.m.a.RequestResponseBodyMethodProcessor : Writing [ApiResult[success=true, code=AUTHENTICATED_USER_LOADED, message=현재 사용자 조회가 완료되었습니다., data=Authentica (truncated)...]
2026-05-12T15:59:41.860+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] org.hibernate.SQL : select count(*) from auth.users uje1_0
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-me_reuses_existing_internal_user_when_subject_already_synchronized()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,118 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - access_denied_for_anonymous_user_maps_to_401_authentication_required()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">access_denied_for_anonymous_user_maps_to_401_authentication_required()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>access_denied_for_anonymous_user_maps_to_401_authentication_required()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-access_denied_for_anonymous_user_maps_to_401_authentication_required()">2026-05-12T15:59:43.085+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.085+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.087+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:43.090+09:00 WARN 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] c.p.a.c.a.s.SecurityAuditTrailWriter : Authentication required. actorId=anonymous method=GET requestPath=/test-support/access-denied
2026-05-12T15:59:43.090+09:00 WARN 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] audit.auth : AUTHENTICATION_REQUIRED eventType=&quot;AUTHENTICATION_REQUIRED&quot; actorId=&quot;anonymous&quot; method=&quot;GET&quot; requestPath=&quot;/test-support/access-denied&quot;
2026-05-12T15:59:43.091+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.SecurityResponseExceptionHandler#handleAuthenticationException(AuthenticationException, HttpServletRequest)
2026-05-12T15:59:43.091+09:00 WARN 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] p.a.c.w.SecurityResponseExceptionHandler : Authentication required. exceptionType=InsufficientAuthenticationException method=GET requestPath=/test-support/access-denied errorCode=AUTH-001
2026-05-12T15:59:43.091+09:00 WARN 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] c.p.a.c.a.s.SecurityAuditTrailWriter : Authentication required. actorId=anonymous method=GET requestPath=/test-support/access-denied
2026-05-12T15:59:43.091+09:00 WARN 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] audit.auth : AUTHENTICATION_REQUIRED eventType=&quot;AUTHENTICATION_REQUIRED&quot; actorId=&quot;anonymous&quot; method=&quot;GET&quot; requestPath=&quot;/test-support/access-denied&quot;
2026-05-12T15:59:43.091+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.092+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-001, message=인증이 필요합니다., data=null, errors=null, traceId=5b5404b7 (truncated)...]
2026-05-12T15:59:43.092+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5b5404b7b9f83f61d35bac4cceefdbe3] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.security.authentication.InsufficientAuthenticationException: Full authentication is required to access this resource]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-access_denied_for_anonymous_user_maps_to_401_authentication_required()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - access_denied_for_authenticated_user_remains_403_forbidden()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">access_denied_for_authenticated_user_remains_403_forbidden()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>access_denied_for_authenticated_user_remains_403_forbidden()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.010s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-access_denied_for_authenticated_user_remains_403_forbidden()">2026-05-12T15:59:43.060+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.060+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.061+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.064+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#accessDenied()
2026-05-12T15:59:43.064+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.SecurityResponseExceptionHandler#handleAccessDeniedException(AccessDeniedException, HttpServletRequest)
2026-05-12T15:59:43.064+09:00 WARN 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] p.a.c.w.SecurityResponseExceptionHandler : Access denied for authenticated principal. exceptionType=AccessDeniedException method=GET requestPath=/test-support/access-denied errorCode=AUTH-002
2026-05-12T15:59:43.064+09:00 WARN 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] c.p.a.c.a.s.SecurityAuditTrailWriter : Access denied. actorId=us***@example.com method=GET requestPath=/test-support/access-denied
2026-05-12T15:59:43.065+09:00 WARN 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] audit.auth : ACCESS_DENIED eventType=&quot;ACCESS_DENIED&quot; actorId=&quot;us***@example.com&quot; method=&quot;GET&quot; requestPath=&quot;/test-support/access-denied&quot;
2026-05-12T15:59:43.065+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.065+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-002, message=접근 권한이 없습니다., data=null, errors=null, traceId=6c5f72 (truncated)...]
2026-05-12T15:59:43.066+09:00 DEBUG 3742337 --- [ Test worker] [traceId=6c5f72b1b521a32743f6702a1baa3900] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.security.access.AccessDeniedException: simulated denial]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-access_denied_for_authenticated_user_remains_403_forbidden()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - authenticated_user_without_required_role_returns_403_json_without_exposing_principal(CapturedOutput)</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">authenticated_user_without_required_role_returns_403_json_without_exposing_principal(CapturedOutput)</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>authenticated_user_without_required_role_returns_403_json_without_exposing_principal(CapturedOutput)</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.055s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-authenticated_user_without_required_role_returns_403_json_without_exposing_principal(CapturedOutput)">2026-05-12T15:59:42.810+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:42.810+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:42.811+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:42.820+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#adminOnly()
2026-05-12T15:59:42.821+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.SecurityResponseExceptionHandler#handleAccessDeniedException(AccessDeniedException, HttpServletRequest)
2026-05-12T15:59:42.821+09:00 WARN 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] p.a.c.w.SecurityResponseExceptionHandler : Access denied for authenticated principal. exceptionType=AuthorizationDeniedException method=GET requestPath=/test-support/admin errorCode=AUTH-002
2026-05-12T15:59:42.822+09:00 WARN 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] c.p.a.c.a.s.SecurityAuditTrailWriter : Access denied. actorId=al***@example.com method=GET requestPath=/test-support/admin
2026-05-12T15:59:42.822+09:00 WARN 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] audit.auth : ACCESS_DENIED eventType=&quot;ACCESS_DENIED&quot; actorId=&quot;al***@example.com&quot; method=&quot;GET&quot; requestPath=&quot;/test-support/admin&quot;
2026-05-12T15:59:42.825+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:42.825+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-002, message=접근 권한이 없습니다., data=null, errors=null, traceId=c756b6 (truncated)...]
2026-05-12T15:59:42.828+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c756b63ddb4adb1315050979b2ef7847] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.security.authorization.AuthorizationDeniedException: Access Denied]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-authenticated_user_without_required_role_returns_403_json_without_exposing_principal(CapturedOutput)">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - business_exception_returns_mapped_status_and_code()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">business_exception_returns_mapped_status_and_code()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>business_exception_returns_mapped_status_and_code()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.011s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-business_exception_returns_mapped_status_and_code()">2026-05-12T15:59:43.034+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.034+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.036+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:43.038+09:00 DEBUG 3742337 --- [ Test worker] [traceId=828baca1257557da8a5490f029079c98] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#businessException()
2026-05-12T15:59:43.039+09:00 DEBUG 3742337 --- [ Test worker] [traceId=828baca1257557da8a5490f029079c98] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ApplicationExceptionHandler#handleBusinessException(BusinessException, HttpServletRequest)
2026-05-12T15:59:43.039+09:00 WARN 3742337 --- [ Test worker] [traceId=828baca1257557da8a5490f029079c98] c.p.a.p.s.e.ApplicationExceptionHandler : Business exception. exceptionType=KeycloakUserNotFoundException errorCode=AUTH-004 method=GET requestPath=/test-support/business
2026-05-12T15:59:43.040+09:00 DEBUG 3742337 --- [ Test worker] [traceId=828baca1257557da8a5490f029079c98] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.040+09:00 DEBUG 3742337 --- [ Test worker] [traceId=828baca1257557da8a5490f029079c98] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-004, message=연결된 내부 Keycloak 사용자를 찾을 수 없습니다., data=null, errors=n (truncated)...]
2026-05-12T15:59:43.041+09:00 DEBUG 3742337 --- [ Test worker] [traceId=828baca1257557da8a5490f029079c98] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.project.auth.application.auth.exception.KeycloakUserNotFoundException: 연결된 내부 Keycloak 사용자를 찾을 수 없습니다.]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-business_exception_returns_mapped_status_and_code()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - client_supplied_trace_id_is_ignored_and_server_generated_value_is_returned()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">client_supplied_trace_id_is_ignored_and_server_generated_value_is_returned()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>client_supplied_trace_id_is_ignored_and_server_generated_value_is_returned()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.014s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-client_supplied_trace_id_is_ignored_and_server_generated_value_is_returned()">2026-05-12T15:59:43.158+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.158+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.160+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:43.162+09:00 DEBUG 3742337 --- [ Test worker] [traceId=52ea64526950a822b30e95b03e771942] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#bodyEndpoint(Map)
2026-05-12T15:59:43.164+09:00 DEBUG 3742337 --- [ Test worker] [traceId=52ea64526950a822b30e95b03e771942] o.s.web.method.HandlerMethod : Could not resolve parameter [0] in java.lang.String com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.bodyEndpoint(java.util.Map&lt;java.lang.String, java.lang.Object&gt;): JSON parse error: Unexpected character ('i' (code 105)): was expecting double-quote to start property name
2026-05-12T15:59:43.165+09:00 DEBUG 3742337 --- [ Test worker] [traceId=52ea64526950a822b30e95b03e771942] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMessageNotReadableException(HttpMessageNotReadableException, HttpServletRequest)
2026-05-12T15:59:43.165+09:00 WARN 3742337 --- [ Test worker] [traceId=52ea64526950a822b30e95b03e771942] c.p.a.p.s.e.RequestExceptionHandler : Request body not readable. method=POST requestPath=/test-support/body errorCode=PRES-002
2026-05-12T15:59:43.165+09:00 DEBUG 3742337 --- [ Test worker] [traceId=52ea64526950a822b30e95b03e771942] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.166+09:00 DEBUG 3742337 --- [ Test worker] [traceId=52ea64526950a822b30e95b03e771942] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-002, message=요청 본문을 읽을 수 없습니다., data=null, errors=null, traceId=5 (truncated)...]
2026-05-12T15:59:43.166+09:00 DEBUG 3742337 --- [ Test worker] [traceId=52ea64526950a822b30e95b03e771942] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('i' (code 105)): was expecting double-quote to start property name]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-client_supplied_trace_id_is_ignored_and_server_generated_value_is_returned()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - framework_thrown_4xx_status_preserves_status_and_maps_to_unhandled_client_error()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">framework_thrown_4xx_status_preserves_status_and_maps_to_unhandled_client_error()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>framework_thrown_4xx_status_preserves_status_and_maps_to_unhandled_client_error()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.013s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-framework_thrown_4xx_status_preserves_status_and_maps_to_unhandled_client_error()">2026-05-12T15:59:43.128+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.128+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.129+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.132+09:00 DEBUG 3742337 --- [ Test worker] [traceId=53b4a7472e2fad0cd2b36ad0084b6cd6] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#frameworkThrown4xx()
2026-05-12T15:59:43.133+09:00 DEBUG 3742337 --- [ Test worker] [traceId=53b4a7472e2fad0cd2b36ad0084b6cd6] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleErrorResponseException(ErrorResponse, HttpServletRequest)
2026-05-12T15:59:43.134+09:00 WARN 3742337 --- [ Test worker] [traceId=53b4a7472e2fad0cd2b36ad0084b6cd6] c.p.a.p.s.e.RequestExceptionHandler : Framework-thrown 4xx status. method=GET requestPath=/test-support/conflict status=409 errorCode=PRES-013
2026-05-12T15:59:43.134+09:00 DEBUG 3742337 --- [ Test worker] [traceId=53b4a7472e2fad0cd2b36ad0084b6cd6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.134+09:00 DEBUG 3742337 --- [ Test worker] [traceId=53b4a7472e2fad0cd2b36ad0084b6cd6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-013, message=처리하지 못한 클라이언트 오류입니다., data=null, errors=null, traceI (truncated)...]
2026-05-12T15:59:43.135+09:00 DEBUG 3742337 --- [ Test worker] [traceId=53b4a7472e2fad0cd2b36ad0084b6cd6] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.server.ResponseStatusException: 409 CONFLICT]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-framework_thrown_4xx_status_preserves_status_and_maps_to_unhandled_client_error()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,311 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - framework_thrown_5xx_status_preserves_status_and_collapses_to_common_999()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">framework_thrown_5xx_status_preserves_status_and_collapses_to_common_999()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>framework_thrown_5xx_status_preserves_status_and_collapses_to_common_999()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-framework_thrown_5xx_status_preserves_status_and_collapses_to_common_999()">2026-05-12T15:59:43.229+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.229+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.231+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:43.233+09:00 DEBUG 3742337 --- [ Test worker] [traceId=a26d1f3fcc5125d013d9b404262f77af] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#frameworkThrown5xx()
2026-05-12T15:59:43.234+09:00 DEBUG 3742337 --- [ Test worker] [traceId=a26d1f3fcc5125d013d9b404262f77af] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleErrorResponseException(ErrorResponse, HttpServletRequest)
2026-05-12T15:59:43.234+09:00 ERROR 3742337 --- [ Test worker] [traceId=a26d1f3fcc5125d013d9b404262f77af] c.p.a.p.s.e.RequestExceptionHandler : Framework-thrown 5xx status. method=GET requestPath=/test-support/service-unavailable status=503
org.springframework.web.server.ResponseStatusException: 503 SERVICE_UNAVAILABLE
at com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.frameworkThrown5xx(ExceptionHandlingIntegrationTest.java:340)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874)
at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:160)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:235)
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:493)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:354)
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:86)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:132)
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:194)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.OAuth2ProtectedResourceMetadataFilter.doFilterInternal(OAuth2ProtectedResourceMetadataFilter.java:97)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:337)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317)
at org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurer$DelegateFilter.doFilter(SecurityMockMvcConfigurer.java:135)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at com.project.auth.config.web.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:199)
at com.project.auth.ExceptionHandlingIntegrationTest.framework_thrown_5xx_status_preserves_status_and_collapses_to_common_999(ExceptionHandlingIntegrationTest.java:189)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:701)
at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:502)
at org.junit.jupiter.engine.support.MethodReflectionUtils.invoke(MethodReflectionUtils.java:45)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:61)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:124)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:163)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:148)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:123)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:99)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:66)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:47)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:39)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:98)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invokeVoid(InterceptingExecutableInvoker.java:71)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$0(TestMethodTestDescriptor.java:219)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:215)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:157)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:52)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:246)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:218)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:179)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:66)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:157)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:65)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:125)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:93)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$0(InterceptingLauncher.java:41)
at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:40)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestClasses(JUnitPlatformTestDefinitionProcessor.java:172)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:121)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:114)
at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:64)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
at jdk.proxy2/jdk.proxy2.$Proxy6.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
2026-05-12T15:59:43.235+09:00 DEBUG 3742337 --- [ Test worker] [traceId=a26d1f3fcc5125d013d9b404262f77af] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.236+09:00 DEBUG 3742337 --- [ Test worker] [traceId=a26d1f3fcc5125d013d9b404262f77af] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=COMMON-999, message=예상하지 못한 오류가 발생했습니다., data=null, errors=null, trace (truncated)...]
2026-05-12T15:59:43.236+09:00 DEBUG 3742337 --- [ Test worker] [traceId=a26d1f3fcc5125d013d9b404262f77af] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.server.ResponseStatusException: 503 SERVICE_UNAVAILABLE]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-framework_thrown_5xx_status_preserves_status_and_collapses_to_common_999()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,311 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - infrastructure_exception_returns_common_999_and_logs_internal_code(CapturedOutput)</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">infrastructure_exception_returns_common_999_and_logs_internal_code(CapturedOutput)</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>infrastructure_exception_returns_common_999_and_logs_internal_code(CapturedOutput)</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.013s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-infrastructure_exception_returns_common_999_and_logs_internal_code(CapturedOutput)">2026-05-12T15:59:43.201+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.201+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.202+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.205+09:00 DEBUG 3742337 --- [ Test worker] [traceId=633326e404009728574ad388f8368ac2] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#infrastructureFailure()
2026-05-12T15:59:43.206+09:00 DEBUG 3742337 --- [ Test worker] [traceId=633326e404009728574ad388f8368ac2] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.InfrastructureExceptionHandler#handleInfrastructureException(InfrastructureException, HttpServletRequest)
2026-05-12T15:59:43.207+09:00 ERROR 3742337 --- [ Test worker] [traceId=633326e404009728574ad388f8368ac2] c.p.a.c.w.InfrastructureExceptionHandler : Infrastructure failure. errorCode=INFRA-999 method=GET requestPath=/test-support/infrastructure
com.project.auth.infrastructure.support.exception.InfrastructureException: Simulated external outage for integration test.
at com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.infrastructureFailure(ExceptionHandlingIntegrationTest.java:315)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874)
at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:160)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:235)
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:493)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:354)
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:86)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:132)
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:194)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.OAuth2ProtectedResourceMetadataFilter.doFilterInternal(OAuth2ProtectedResourceMetadataFilter.java:97)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:337)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317)
at org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurer$DelegateFilter.doFilter(SecurityMockMvcConfigurer.java:135)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at com.project.auth.config.web.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:199)
at com.project.auth.ExceptionHandlingIntegrationTest.infrastructure_exception_returns_common_999_and_logs_internal_code(ExceptionHandlingIntegrationTest.java:148)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:701)
at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:502)
at org.junit.jupiter.engine.support.MethodReflectionUtils.invoke(MethodReflectionUtils.java:45)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:61)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:124)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:163)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:148)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:123)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:99)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:66)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:47)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:39)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:98)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invokeVoid(InterceptingExecutableInvoker.java:71)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$0(TestMethodTestDescriptor.java:219)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:215)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:157)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:52)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:246)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:218)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:179)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:66)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:157)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:65)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:125)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:93)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$0(InterceptingLauncher.java:41)
at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:40)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestClasses(JUnitPlatformTestDefinitionProcessor.java:172)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:121)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:114)
at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:64)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
at jdk.proxy2/jdk.proxy2.$Proxy6.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
2026-05-12T15:59:43.208+09:00 DEBUG 3742337 --- [ Test worker] [traceId=633326e404009728574ad388f8368ac2] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.208+09:00 DEBUG 3742337 --- [ Test worker] [traceId=633326e404009728574ad388f8368ac2] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=COMMON-999, message=예상하지 못한 오류가 발생했습니다., data=null, errors=null, trace (truncated)...]
2026-05-12T15:59:43.209+09:00 DEBUG 3742337 --- [ Test worker] [traceId=633326e404009728574ad388f8368ac2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.project.auth.infrastructure.support.exception.InfrastructureException: Simulated external outage for integration test.]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-infrastructure_exception_returns_common_999_and_logs_internal_code(CapturedOutput)">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,311 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - leaked_domain_exception_falls_back_to_common_999_without_exposing_message()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">leaked_domain_exception_falls_back_to_common_999_without_exposing_message()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>leaked_domain_exception_falls_back_to_common_999_without_exposing_message()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.016s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-leaked_domain_exception_falls_back_to_common_999_without_exposing_message()">2026-05-12T15:59:43.173+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.173+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.175+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.177+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c6b6d1bb68a2d2e52348b43dc40df79f] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#domainFailure()
2026-05-12T15:59:43.178+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c6b6d1bb68a2d2e52348b43dc40df79f] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.InfrastructureExceptionHandler#handleLeakedDomainException(DomainException, HttpServletRequest)
2026-05-12T15:59:43.178+09:00 ERROR 3742337 --- [ Test worker] [traceId=c6b6d1bb68a2d2e52348b43dc40df79f] c.p.a.c.w.InfrastructureExceptionHandler : Leaked domain exception. method=GET requestPath=/test-support/domain
com.project.auth.ExceptionHandlingIntegrationTest$TestDomainException: 테스트용 사용자 노출 메시지
at com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.domainFailure(ExceptionHandlingIntegrationTest.java:323)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874)
at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:160)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:235)
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:493)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:354)
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:86)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:132)
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:194)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.OAuth2ProtectedResourceMetadataFilter.doFilterInternal(OAuth2ProtectedResourceMetadataFilter.java:97)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:337)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317)
at org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurer$DelegateFilter.doFilter(SecurityMockMvcConfigurer.java:135)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at com.project.auth.config.web.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:199)
at com.project.auth.ExceptionHandlingIntegrationTest.leaked_domain_exception_falls_back_to_common_999_without_exposing_message(ExceptionHandlingIntegrationTest.java:275)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:701)
at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:502)
at org.junit.jupiter.engine.support.MethodReflectionUtils.invoke(MethodReflectionUtils.java:45)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:61)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:124)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:163)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:148)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:123)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:99)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:66)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:47)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:39)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:98)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invokeVoid(InterceptingExecutableInvoker.java:71)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$0(TestMethodTestDescriptor.java:219)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:215)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:157)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:52)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:246)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:218)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:179)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:66)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:157)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:65)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:125)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:93)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$0(InterceptingLauncher.java:41)
at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:40)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestClasses(JUnitPlatformTestDefinitionProcessor.java:172)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:121)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:114)
at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:64)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
at jdk.proxy2/jdk.proxy2.$Proxy6.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
2026-05-12T15:59:43.183+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c6b6d1bb68a2d2e52348b43dc40df79f] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.183+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c6b6d1bb68a2d2e52348b43dc40df79f] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=COMMON-999, message=예상하지 못한 오류가 발생했습니다., data=null, errors=null, trace (truncated)...]
2026-05-12T15:59:43.184+09:00 DEBUG 3742337 --- [ Test worker] [traceId=c6b6d1bb68a2d2e52348b43dc40df79f] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.project.auth.ExceptionHandlingIntegrationTest$TestDomainException: 테스트용 사용자 노출 메시지]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-leaked_domain_exception_falls_back_to_common_999_without_exposing_message()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - malformed_json_returns_400_json()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">malformed_json_returns_400_json()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>malformed_json_returns_400_json()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.013s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-malformed_json_returns_400_json()">2026-05-12T15:59:43.215+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.215+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.217+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:43.220+09:00 DEBUG 3742337 --- [ Test worker] [traceId=d7a73beebf9319316d2f2386bf85a9f4] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#bodyEndpoint(Map)
2026-05-12T15:59:43.221+09:00 DEBUG 3742337 --- [ Test worker] [traceId=d7a73beebf9319316d2f2386bf85a9f4] o.s.web.method.HandlerMethod : Could not resolve parameter [0] in java.lang.String com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.bodyEndpoint(java.util.Map&lt;java.lang.String, java.lang.Object&gt;): JSON parse error: Unexpected character ('i' (code 105)): was expecting double-quote to start property name
2026-05-12T15:59:43.221+09:00 DEBUG 3742337 --- [ Test worker] [traceId=d7a73beebf9319316d2f2386bf85a9f4] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMessageNotReadableException(HttpMessageNotReadableException, HttpServletRequest)
2026-05-12T15:59:43.221+09:00 WARN 3742337 --- [ Test worker] [traceId=d7a73beebf9319316d2f2386bf85a9f4] c.p.a.p.s.e.RequestExceptionHandler : Request body not readable. method=POST requestPath=/test-support/body errorCode=PRES-002
2026-05-12T15:59:43.221+09:00 DEBUG 3742337 --- [ Test worker] [traceId=d7a73beebf9319316d2f2386bf85a9f4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.222+09:00 DEBUG 3742337 --- [ Test worker] [traceId=d7a73beebf9319316d2f2386bf85a9f4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-002, message=요청 본문을 읽을 수 없습니다., data=null, errors=null, traceId=d (truncated)...]
2026-05-12T15:59:43.222+09:00 DEBUG 3742337 --- [ Test worker] [traceId=d7a73beebf9319316d2f2386bf85a9f4] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('i' (code 105)): was expecting double-quote to start property name]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-malformed_json_returns_400_json()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - method_argument_not_valid_returns_400_with_invalid_input_and_field_errors()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">method_argument_not_valid_returns_400_with_invalid_input_and_field_errors()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>method_argument_not_valid_returns_400_with_invalid_input_and_field_errors()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.096s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-method_argument_not_valid_returns_400_with_invalid_input_and_field_errors()">2026-05-12T15:59:42.918+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:42.918+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:42.919+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:42.922+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0978ce8adaac9d32afd4e6dfab2a25f6] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#validatedBody(ValidatedRequest)
2026-05-12T15:59:42.981+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0978ce8adaac9d32afd4e6dfab2a25f6] m.m.a.RequestResponseBodyMethodProcessor : Read &quot;application/json&quot; to [ValidatedRequest[name=]]
2026-05-12T15:59:42.996+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0978ce8adaac9d32afd4e6dfab2a25f6] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ValidationExceptionHandler#handleValidationException(MethodArgumentNotValidException)
2026-05-12T15:59:42.996+09:00 WARN 3742337 --- [ Test worker] [traceId=0978ce8adaac9d32afd4e6dfab2a25f6] c.p.a.p.s.e.ValidationExceptionHandler : Validation failed: {/name=[이름은 필수입니다]}
2026-05-12T15:59:42.997+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0978ce8adaac9d32afd4e6dfab2a25f6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:42.997+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0978ce8adaac9d32afd4e6dfab2a25f6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-001, message=요청 값이 올바르지 않습니다., data=null, errors={/name=[이름은 필수입니 (truncated)...]
2026-05-12T15:59:43.005+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0978ce8adaac9d32afd4e6dfab2a25f6] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in java.lang.String com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.validatedBody(com.project.auth.ExceptionHandlingIntegrationTest$ValidatedRequest): [Field error in object 'validatedRequest' on field 'name': rejected value []; codes [NotBlank.validatedRequest.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [validatedRequest.name,name]; arguments []; default message [name]]; default message [이름은 필수입니다]] ]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-method_argument_not_valid_returns_400_with_invalid_input_and_field_errors()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - missing_required_header_returns_header_specific_error_code()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">missing_required_header_returns_header_specific_error_code()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>missing_required_header_returns_header_specific_error_code()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-missing_required_header_returns_header_specific_error_code()">2026-05-12T15:59:43.047+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.047+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.048+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.051+09:00 DEBUG 3742337 --- [ Test worker] [traceId=038a858a6c4daeb5c94e9ca373497127] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#headerRequired(String)
2026-05-12T15:59:43.052+09:00 DEBUG 3742337 --- [ Test worker] [traceId=038a858a6c4daeb5c94e9ca373497127] o.s.web.method.HandlerMethod : Could not resolve parameter [0] in java.lang.String com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.headerRequired(java.lang.String): Required request header 'X-Test-Header' for method parameter type String is not present
2026-05-12T15:59:43.052+09:00 DEBUG 3742337 --- [ Test worker] [traceId=038a858a6c4daeb5c94e9ca373497127] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMissingRequestHeaderException(MissingRequestHeaderException, HttpServletRequest)
2026-05-12T15:59:43.053+09:00 WARN 3742337 --- [ Test worker] [traceId=038a858a6c4daeb5c94e9ca373497127] c.p.a.p.s.e.RequestExceptionHandler : Missing request header. method=GET requestPath=/test-support/header-required header=X-Test-Header errorCode=PRES-009
2026-05-12T15:59:43.053+09:00 DEBUG 3742337 --- [ Test worker] [traceId=038a858a6c4daeb5c94e9ca373497127] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.053+09:00 DEBUG 3742337 --- [ Test worker] [traceId=038a858a6c4daeb5c94e9ca373497127] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-009, message=필수 요청 헤더가 누락되었습니다., data=null, errors=null, traceId= (truncated)...]
2026-05-12T15:59:43.054+09:00 DEBUG 3742337 --- [ Test worker] [traceId=038a858a6c4daeb5c94e9ca373497127] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingRequestHeaderException: Required request header 'X-Test-Header' for method parameter type String is not present]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-missing_required_header_returns_header_specific_error_code()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - missing_required_query_parameter_returns_400_with_missing_parameter_code()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">missing_required_query_parameter_returns_400_with_missing_parameter_code()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>missing_required_query_parameter_returns_400_with_missing_parameter_code()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.010s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-missing_required_query_parameter_returns_400_with_missing_parameter_code()">2026-05-12T15:59:43.189+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.190+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.191+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.193+09:00 DEBUG 3742337 --- [ Test worker] [traceId=f88d858cb08031d1d1401f2405da7ff0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#requiredParam(String)
2026-05-12T15:59:43.194+09:00 DEBUG 3742337 --- [ Test worker] [traceId=f88d858cb08031d1d1401f2405da7ff0] o.s.web.method.HandlerMethod : Could not resolve parameter [0] in java.lang.String com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.requiredParam(java.lang.String): Required request parameter 'name' for method parameter type String is not present
2026-05-12T15:59:43.195+09:00 DEBUG 3742337 --- [ Test worker] [traceId=f88d858cb08031d1d1401f2405da7ff0] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMissingParameterException(MissingServletRequestParameterException, HttpServletRequest)
2026-05-12T15:59:43.195+09:00 WARN 3742337 --- [ Test worker] [traceId=f88d858cb08031d1d1401f2405da7ff0] c.p.a.p.s.e.RequestExceptionHandler : Missing request parameter. method=GET requestPath=/test-support/required-param parameter=name errorCode=PRES-004
2026-05-12T15:59:43.196+09:00 DEBUG 3742337 --- [ Test worker] [traceId=f88d858cb08031d1d1401f2405da7ff0] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.196+09:00 DEBUG 3742337 --- [ Test worker] [traceId=f88d858cb08031d1d1401f2405da7ff0] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-004, message=필수 요청 파라미터가 누락되었습니다., data=null, errors=null, traceI (truncated)...]
2026-05-12T15:59:43.196+09:00 DEBUG 3742337 --- [ Test worker] [traceId=f88d858cb08031d1d1401f2405da7ff0] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'name' for method parameter type String is not present]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-missing_required_query_parameter_returns_400_with_missing_parameter_code()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - type_mismatch_in_query_parameter_returns_400_with_type_mismatch_code()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">type_mismatch_in_query_parameter_returns_400_with_type_mismatch_code()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>type_mismatch_in_query_parameter_returns_400_with_type_mismatch_code()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.032s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-type_mismatch_in_query_parameter_returns_400_with_type_mismatch_code()">2026-05-12T15:59:42.883+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:42.890+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:42.892+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:42.896+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5fae806647a77c1e86417cc5db799dd2] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#typedParam(long)
2026-05-12T15:59:42.908+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5fae806647a77c1e86417cc5db799dd2] o.s.web.method.HandlerMethod : Could not resolve parameter [0] in java.lang.String com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.typedParam(long): Method parameter 'id': Failed to convert value of type 'java.lang.String' to required type 'long'; For input string: &quot;not-a-number&quot;
2026-05-12T15:59:42.908+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5fae806647a77c1e86417cc5db799dd2] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleTypeMismatchException(TypeMismatchException, HttpServletRequest)
2026-05-12T15:59:42.909+09:00 WARN 3742337 --- [ Test worker] [traceId=5fae806647a77c1e86417cc5db799dd2] c.p.a.p.s.e.RequestExceptionHandler : Type mismatch for parameter. method=GET requestPath=/test-support/typed-param parameter=id errorCode=PRES-014
2026-05-12T15:59:42.909+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5fae806647a77c1e86417cc5db799dd2] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:42.910+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5fae806647a77c1e86417cc5db799dd2] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-014, message=요청 파라미터 타입이 올바르지 않습니다., data=null, errors=null, trac (truncated)...]
2026-05-12T15:59:42.911+09:00 DEBUG 3742337 --- [ Test worker] [traceId=5fae806647a77c1e86417cc5db799dd2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Method parameter 'id': Failed to convert value of type 'java.lang.String' to required type 'long'; For input string: &quot;not-a-number&quot;]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-type_mismatch_in_query_parameter_returns_400_with_type_mismatch_code()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,312 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - unacceptable_accept_header_returns_406()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">unacceptable_accept_header_returns_406()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>unacceptable_accept_header_returns_406()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.015s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-unacceptable_accept_header_returns_406()">2026-05-12T15:59:43.111+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.111+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.113+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.118+09:00 DEBUG 3742337 --- [ Test worker] [traceId=10782477560cee4162c9c73eda715822] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMediaTypeNotAcceptableException(HttpMediaTypeNotAcceptableException, HttpServletRequest)
2026-05-12T15:59:43.119+09:00 WARN 3742337 --- [ Test worker] [traceId=10782477560cee4162c9c73eda715822] c.p.a.p.s.e.RequestExceptionHandler : Not acceptable media type. method=GET requestPath=/test-support/produces-json errorCode=PRES-008
2026-05-12T15:59:43.119+09:00 DEBUG 3742337 --- [ Test worker] [traceId=10782477560cee4162c9c73eda715822] o.s.w.s.m.m.a.HttpEntityMethodProcessor : No match for [application/pdf], supported: [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.120+09:00 WARN 3742337 --- [ Test worker] [traceId=10782477560cee4162c9c73eda715822] .m.m.a.ExceptionHandlerExceptionResolver : Failure in @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMediaTypeNotAcceptableException(HttpMediaTypeNotAcceptableException, HttpServletRequest)
org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:288)
at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:261)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:460)
at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:72)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:176)
at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:78)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1227)
at org.springframework.test.web.servlet.TestDispatcherServlet.processHandlerException(TestDispatcherServlet.java:144)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1035)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874)
at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:160)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:235)
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:493)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:354)
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:86)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:132)
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:194)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.OAuth2ProtectedResourceMetadataFilter.doFilterInternal(OAuth2ProtectedResourceMetadataFilter.java:97)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:337)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317)
at org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurer$DelegateFilter.doFilter(SecurityMockMvcConfigurer.java:135)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at com.project.auth.config.web.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:199)
at com.project.auth.ExceptionHandlingIntegrationTest.unacceptable_accept_header_returns_406(ExceptionHandlingIntegrationTest.java:239)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:701)
at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:502)
at org.junit.jupiter.engine.support.MethodReflectionUtils.invoke(MethodReflectionUtils.java:45)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:61)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:124)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:163)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:148)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:123)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:99)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:66)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:47)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:39)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:98)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invokeVoid(InterceptingExecutableInvoker.java:71)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$0(TestMethodTestDescriptor.java:219)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:215)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:157)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:52)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:246)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:218)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:179)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:66)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:157)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:65)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:125)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:93)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$0(InterceptingLauncher.java:41)
at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:40)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestClasses(JUnitPlatformTestDefinitionProcessor.java:172)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:121)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:114)
at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:64)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
at jdk.proxy2/jdk.proxy2.$Proxy6.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
2026-05-12T15:59:43.122+09:00 WARN 3742337 --- [ Test worker] [traceId=10782477560cee4162c9c73eda715822] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-unacceptable_accept_header_returns_406()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,118 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - unauthenticated_request_returns_401_json_with_trace_metadata()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">unauthenticated_request_returns_401_json_with_trace_metadata()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>unauthenticated_request_returns_401_json_with_trace_metadata()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.013s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-unauthenticated_request_returns_401_json_with_trace_metadata()">2026-05-12T15:59:43.071+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.071+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.073+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:43.075+09:00 WARN 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] c.p.a.c.a.s.SecurityAuditTrailWriter : Authentication required. actorId=anonymous method=GET requestPath=/test-support/protected
2026-05-12T15:59:43.076+09:00 WARN 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] audit.auth : AUTHENTICATION_REQUIRED eventType=&quot;AUTHENTICATION_REQUIRED&quot; actorId=&quot;anonymous&quot; method=&quot;GET&quot; requestPath=&quot;/test-support/protected&quot;
2026-05-12T15:59:43.076+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.config.web.SecurityResponseExceptionHandler#handleAuthenticationException(AuthenticationException, HttpServletRequest)
2026-05-12T15:59:43.076+09:00 WARN 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] p.a.c.w.SecurityResponseExceptionHandler : Authentication required. exceptionType=InsufficientAuthenticationException method=GET requestPath=/test-support/protected errorCode=AUTH-001
2026-05-12T15:59:43.076+09:00 WARN 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] c.p.a.c.a.s.SecurityAuditTrailWriter : Authentication required. actorId=anonymous method=GET requestPath=/test-support/protected
2026-05-12T15:59:43.076+09:00 WARN 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] audit.auth : AUTHENTICATION_REQUIRED eventType=&quot;AUTHENTICATION_REQUIRED&quot; actorId=&quot;anonymous&quot; method=&quot;GET&quot; requestPath=&quot;/test-support/protected&quot;
2026-05-12T15:59:43.077+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.077+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=AUTH-001, message=인증이 필요합니다., data=null, errors=null, traceId=1f8505a2 (truncated)...]
2026-05-12T15:59:43.078+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1f8505a2974ce513ea52f13d821ca22c] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.security.authentication.InsufficientAuthenticationException: Full authentication is required to access this resource]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-unauthenticated_request_returns_401_json_with_trace_metadata()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,311 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - uncaught_runtime_exception_hits_safety_net_and_returns_common_999(CapturedOutput)</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">uncaught_runtime_exception_hits_safety_net_and_returns_common_999(CapturedOutput)</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>uncaught_runtime_exception_hits_safety_net_and_returns_common_999(CapturedOutput)</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.019s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-uncaught_runtime_exception_hits_safety_net_and_returns_common_999(CapturedOutput)">2026-05-12T15:59:43.014+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.015+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.016+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.019+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0f775dfa8168654d91b37e2db4805484] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#uncaughtRuntime()
2026-05-12T15:59:43.020+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0f775dfa8168654d91b37e2db4805484] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ApplicationExceptionHandler#handleUncaughtException(Exception, HttpServletRequest)
2026-05-12T15:59:43.020+09:00 ERROR 3742337 --- [ Test worker] [traceId=0f775dfa8168654d91b37e2db4805484] c.p.a.p.s.e.ApplicationExceptionHandler : Uncaught exception reached @ExceptionHandler safety net. exceptionType=java.lang.IllegalStateException method=GET requestPath=/test-support/uncaught
java.lang.IllegalStateException: simulated unknown failure
at com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.uncaughtRuntime(ExceptionHandlingIntegrationTest.java:345)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874)
at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:160)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:235)
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:493)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:354)
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:86)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:132)
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:194)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.oauth2.server.resource.web.OAuth2ProtectedResourceMetadataFilter.doFilterInternal(OAuth2ProtectedResourceMetadataFilter.java:97)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:231)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:244)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:337)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:228)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:141)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317)
at org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurer$DelegateFilter.doFilter(SecurityMockMvcConfigurer.java:135)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at com.project.auth.config.web.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:199)
at com.project.auth.ExceptionHandlingIntegrationTest.uncaught_runtime_exception_hits_safety_net_and_returns_common_999(ExceptionHandlingIntegrationTest.java:200)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:701)
at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:502)
at org.junit.jupiter.engine.support.MethodReflectionUtils.invoke(MethodReflectionUtils.java:45)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:61)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:124)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:163)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:148)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:123)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:99)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:66)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:47)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:39)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:98)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invokeVoid(InterceptingExecutableInvoker.java:71)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$0(TestMethodTestDescriptor.java:219)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:215)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:157)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:52)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:246)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:218)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:179)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:66)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:157)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:65)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:125)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:93)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$0(InterceptingLauncher.java:41)
at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:40)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestClasses(JUnitPlatformTestDefinitionProcessor.java:172)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:121)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:114)
at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:64)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
at jdk.proxy2/jdk.proxy2.$Proxy6.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
2026-05-12T15:59:43.026+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0f775dfa8168654d91b37e2db4805484] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.027+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0f775dfa8168654d91b37e2db4805484] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=COMMON-999, message=예상하지 못한 오류가 발생했습니다., data=null, errors=null, trace (truncated)...]
2026-05-12T15:59:43.027+09:00 DEBUG 3742337 --- [ Test worker] [traceId=0f775dfa8168654d91b37e2db4805484] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [java.lang.IllegalStateException: simulated unknown failure]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-uncaught_runtime_exception_hits_safety_net_and_returns_common_999(CapturedOutput)">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - unknown_route_returns_404_with_resource_not_found_code()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">unknown_route_returns_404_with_resource_not_found_code()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>unknown_route_returns_404_with_resource_not_found_code()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.016s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-unknown_route_returns_404_with_resource_not_found_code()">2026-05-12T15:59:43.141+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.141+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.142+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.147+09:00 DEBUG 3742337 --- [ Test worker] [traceId=e9cd3979adac83f9cbc93e80ca52e98a] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped to ResourceHttpRequestHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/], ServletContext [/]]
2026-05-12T15:59:43.150+09:00 DEBUG 3742337 --- [ Test worker] [traceId=e9cd3979adac83f9cbc93e80ca52e98a] o.s.w.s.r.ResourceHttpRequestHandler : Resource not found
2026-05-12T15:59:43.151+09:00 DEBUG 3742337 --- [ Test worker] [traceId=e9cd3979adac83f9cbc93e80ca52e98a] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleNoResourceFoundException(NoResourceFoundException, HttpServletRequest)
2026-05-12T15:59:43.151+09:00 WARN 3742337 --- [ Test worker] [traceId=e9cd3979adac83f9cbc93e80ca52e98a] c.p.a.p.s.e.RequestExceptionHandler : No resource found. method=GET requestPath=/test-support/this-path-does-not-exist resourcePath=test-support/this-path-does-not-exist errorCode=PRES-005
2026-05-12T15:59:43.152+09:00 DEBUG 3742337 --- [ Test worker] [traceId=e9cd3979adac83f9cbc93e80ca52e98a] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.152+09:00 DEBUG 3742337 --- [ Test worker] [traceId=e9cd3979adac83f9cbc93e80ca52e98a] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-005, message=요청한 리소스를 찾을 수 없습니다., data=null, errors=null, traceId (truncated)...]
2026-05-12T15:59:43.153+09:00 DEBUG 3742337 --- [ Test worker] [traceId=e9cd3979adac83f9cbc93e80ca52e98a] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.servlet.resource.NoResourceFoundException: No static resource test-support/this-path-does-not-exist for request '/test-support/this-path-does-not-exist'.]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-unknown_route_returns_404_with_resource_not_found_code()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - unsupported_content_type_returns_415()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">unsupported_content_type_returns_415()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>unsupported_content_type_returns_415()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-unsupported_content_type_returns_415()">2026-05-12T15:59:43.098+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:43.098+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:43.099+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:43.102+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1fc67023b5c5d3760c89f58fb30531f5] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController#bodyEndpoint(Map)
2026-05-12T15:59:43.104+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1fc67023b5c5d3760c89f58fb30531f5] o.s.web.method.HandlerMethod : Could not resolve parameter [0] in java.lang.String com.project.auth.ExceptionHandlingIntegrationTest$TestExceptionController.bodyEndpoint(java.util.Map&lt;java.lang.String, java.lang.Object&gt;): Content-Type 'application/xml' is not supported
2026-05-12T15:59:43.104+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1fc67023b5c5d3760c89f58fb30531f5] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMediaTypeNotSupportedException(HttpMediaTypeNotSupportedException, HttpServletRequest)
2026-05-12T15:59:43.104+09:00 WARN 3742337 --- [ Test worker] [traceId=1fc67023b5c5d3760c89f58fb30531f5] c.p.a.p.s.e.RequestExceptionHandler : Unsupported media type. method=POST requestPath=/test-support/body contentType=application/xml errorCode=PRES-007
2026-05-12T15:59:43.105+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1fc67023b5c5d3760c89f58fb30531f5] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:43.105+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1fc67023b5c5d3760c89f58fb30531f5] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-007, message=지원하지 않는 Content-Type입니다., data=null, errors=null, tr (truncated)...]
2026-05-12T15:59:43.106+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1fc67023b5c5d3760c89f58fb30531f5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/xml' is not supported]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-unsupported_content_type_returns_415()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,114 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - unsupported_method_returns_405_json()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ExceptionHandlingIntegrationTest</a> &gt;
<span class="breadcrumb">unsupported_method_returns_405_json()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>unsupported_method_returns_405_json()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.015s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-unsupported_method_returns_405_json()">2026-05-12T15:59:42.868+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:42.868+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:42.869+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:42.875+09:00 DEBUG 3742337 --- [ Test worker] [traceId=03d953263f8b643df535f9f48a754c39] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.RequestExceptionHandler#handleMethodNotSupportedException(HttpRequestMethodNotSupportedException, HttpServletRequest)
2026-05-12T15:59:42.876+09:00 WARN 3742337 --- [ Test worker] [traceId=03d953263f8b643df535f9f48a754c39] c.p.a.p.s.e.RequestExceptionHandler : Method not supported. method=POST requestPath=/test-support/protected attemptedMethod=POST errorCode=PRES-003
2026-05-12T15:59:42.876+09:00 DEBUG 3742337 --- [ Test worker] [traceId=03d953263f8b643df535f9f48a754c39] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:42.877+09:00 DEBUG 3742337 --- [ Test worker] [traceId=03d953263f8b643df535f9f48a754c39] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-003, message=지원하지 않는 HTTP 메서드입니다., data=null, errors=null, traceI (truncated)...]
2026-05-12T15:59:42.878+09:00 DEBUG 3742337 --- [ Test worker] [traceId=03d953263f8b643df535f9f48a754c39] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' is not supported]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-unsupported_method_returns_405_json()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,121 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - openApiDocsExposeAuthenticatedUserEndpoint()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.SwaggerDocumentationIntegrationTest</a> &gt;
<span class="breadcrumb">openApiDocsExposeAuthenticatedUserEndpoint()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>openApiDocsExposeAuthenticatedUserEndpoint()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.744s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-openApiDocsExposeAuthenticatedUserEndpoint()">2026-05-12T15:59:44.976+09:00 INFO 3742337 --- [o-auto-1-exec-1] [traceId=] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2026-05-12T15:59:44.976+09:00 INFO 3742337 --- [o-auto-1-exec-1] [traceId=] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2026-05-12T15:59:44.976+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=] o.s.web.servlet.DispatcherServlet : Detected StandardServletMultipartResolver
2026-05-12T15:59:44.976+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=] o.s.web.servlet.DispatcherServlet : Detected AcceptHeaderLocaleResolver
2026-05-12T15:59:44.978+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@702d40d0
2026-05-12T15:59:44.978+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.support.SessionFlashMapManager@66594b19
2026-05-12T15:59:44.978+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=] o.s.web.servlet.DispatcherServlet : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
2026-05-12T15:59:44.978+09:00 INFO 3742337 --- [o-auto-1-exec-1] [traceId=] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:44.993+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=ca31356bb675ba6d7fb4865ed6a6fd21] o.s.web.servlet.DispatcherServlet : GET &quot;/v3/api-docs&quot;, parameters={}
2026-05-12T15:59:44.994+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=ca31356bb675ba6d7fb4865ed6a6fd21] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springdoc.webmvc.api.OpenApiWebMvcResource#openapiJson(HttpServletRequest, String, Locale)
2026-05-12T15:59:45.405+09:00 INFO 3742337 --- [o-auto-1-exec-1] [traceId=ca31356bb675ba6d7fb4865ed6a6fd21] o.springdoc.api.AbstractOpenApiResource : Init duration for springdoc-openapi is: 399 ms
2026-05-12T15:59:45.423+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=ca31356bb675ba6d7fb4865ed6a6fd21] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json', given [*/*] and supported [application/json]
2026-05-12T15:59:45.424+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=ca31356bb675ba6d7fb4865ed6a6fd21] m.m.a.RequestResponseBodyMethodProcessor : Writing [{7b226f70656e617069223a22332e312e30222c22696e666f223a7b227469746c65223a2250726f6a6563742041757468205 (truncated)...]
2026-05-12T15:59:45.428+09:00 DEBUG 3742337 --- [o-auto-1-exec-1] [traceId=ca31356bb675ba6d7fb4865ed6a6fd21] o.s.web.servlet.DispatcherServlet : Completed 200 OK
2026-05-12T15:59:45.430+09:00 INFO 3742337 --- [o-auto-1-exec-1] [traceId=ca31356bb675ba6d7fb4865ed6a6fd21] http.access : ACCESS eventType=&quot;HTTP_ACCESS&quot; method=&quot;GET&quot; requestPath=&quot;/v3/api-docs&quot; status=&quot;200&quot; durationMs=&quot;446&quot; remoteIp=&quot;127.0.0.0&quot; actorId=&quot;anonymous&quot; result=&quot;success&quot;
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-openApiDocsExposeAuthenticatedUserEndpoint()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - class_level_validation_failure_is_reported_under_global_bucket()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ValidationExceptionHandlerIntegrationTest</a> &gt;
<span class="breadcrumb">class_level_validation_failure_is_reported_under_global_bucket()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>class_level_validation_failure_is_reported_under_global_bucket()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.037s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-class_level_validation_failure_is_reported_under_global_bucket()">2026-05-12T15:59:46.115+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:46.115+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:46.116+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:46.120+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController#signup(SignupRequest)
2026-05-12T15:59:46.124+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] m.m.a.RequestResponseBodyMethodProcessor : Read &quot;application/json&quot; to [SignupRequest[password=abc, passwordConfirm=different]]
2026-05-12T15:59:46.135+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ValidationExceptionHandler#handleValidationException(MethodArgumentNotValidException)
2026-05-12T15:59:46.136+09:00 WARN 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] c.p.a.p.s.e.ValidationExceptionHandler : Validation failed: {__global__=[passwords must match]}
2026-05-12T15:59:46.138+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:46.138+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-001, message=요청 값이 올바르지 않습니다., data=null, errors={__global__=[pas (truncated)...]
2026-05-12T15:59:46.142+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in java.lang.String com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController.signup(com.project.auth.ValidationExceptionHandlerIntegrationTest$SignupRequest): [Error in object 'signupRequest': codes [PasswordsMatch.signupRequest,PasswordsMatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [signupRequest]; arguments []; default message []]; default message [passwords must match]] ]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-class_level_validation_failure_is_reported_under_global_bucket()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - constraint_violation_uses_json_pointer_for_property_path()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ValidationExceptionHandlerIntegrationTest</a> &gt;
<span class="breadcrumb">constraint_violation_uses_json_pointer_for_property_path()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>constraint_violation_uses_json_pointer_for_property_path()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.022s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-constraint_violation_uses_json_pointer_for_property_path()">2026-05-12T15:59:46.151+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:46.151+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:46.153+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
2026-05-12T15:59:46.155+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController#search(String)
2026-05-12T15:59:46.166+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ValidationExceptionHandler#handleConstraintViolationException(ConstraintViolationException)
2026-05-12T15:59:46.167+09:00 WARN 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] c.p.a.p.s.e.ValidationExceptionHandler : Constraint violation: {/search/q=[must be at least 2 chars]}
2026-05-12T15:59:46.167+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:46.167+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-006, message=요청 값이 제약 조건을 위반했습니다., data=null, errors={/search/q=[ (truncated)...]
2026-05-12T15:59:46.168+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [jakarta.validation.ConstraintViolationException: search.q: must be at least 2 chars]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-constraint_violation_uses_json_pointer_for_property_path()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - field_level_and_class_level_violations_coexist_in_response()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.ValidationExceptionHandlerIntegrationTest</a> &gt;
<span class="breadcrumb">field_level_and_class_level_violations_coexist_in_response()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>field_level_and_class_level_violations_coexist_in_response()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-field_level_and_class_level_violations_coexist_in_response()">2026-05-12T15:59:46.175+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2026-05-12T15:59:46.175+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2026-05-12T15:59:46.176+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
2026-05-12T15:59:46.178+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController#signup(SignupRequest)
2026-05-12T15:59:46.179+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] m.m.a.RequestResponseBodyMethodProcessor : Read &quot;application/json&quot; to [SignupRequest[password=, passwordConfirm=different]]
2026-05-12T15:59:46.180+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ValidationExceptionHandler#handleValidationException(MethodArgumentNotValidException)
2026-05-12T15:59:46.180+09:00 WARN 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] c.p.a.p.s.e.ValidationExceptionHandler : Validation failed: {/password=[password is required], __global__=[passwords must match]}
2026-05-12T15:59:46.181+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
2026-05-12T15:59:46.181+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-001, message=요청 값이 올바르지 않습니다., data=null, errors={/password=[pass (truncated)...]
2026-05-12T15:59:46.182+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in java.lang.String com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController.signup(com.project.auth.ValidationExceptionHandlerIntegrationTest$SignupRequest) with 2 errors: [Field error in object 'signupRequest' on field 'password': rejected value []; codes [NotBlank.signupRequest.password,NotBlank.password,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [signupRequest.password,password]; arguments []; default message [password]]; default message [password is required]] [Error in object 'signupRequest': codes [PasswordsMatch.signupRequest,PasswordsMatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [signupRequest]; arguments []; default message []]; default message [passwords must match]] ]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-field_level_and_class_level_violations_coexist_in_response()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,298 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)</title>
<link href="../../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../../index.html">all</a> &gt;
<a class="breadcrumb" href="../index.html">com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest</a> &gt;
<span class="breadcrumb">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">21</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.099s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th>Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">CONSTRAINT_VIOLATION -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[10]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">MISSING_HEADER -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[11]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">REQUEST_BINDING_FAILED -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[12]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">METHOD_NOT_ALLOWED -&gt; 405 METHOD_NOT_ALLOWED</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[13]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">RESOURCE_NOT_FOUND -&gt; 404 NOT_FOUND</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[14]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">UNSUPPORTED_MEDIA_TYPE -&gt; 415 UNSUPPORTED_MEDIA_TYPE</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[15]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">NOT_ACCEPTABLE -&gt; 406 NOT_ACCEPTABLE</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[16]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">PAYLOAD_TOO_LARGE -&gt; 413 CONTENT_TOO_LARGE</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[17]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">MESSAGE_NOT_WRITABLE -&gt; 500 INTERNAL_SERVER_ERROR</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[18]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">UNHANDLED_CLIENT_ERROR -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[19]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.008s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">INTERNAL_SERVER_ERROR -&gt; 500 INTERNAL_SERVER_ERROR</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[1]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.007s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">TYPE_MISMATCH -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[20]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">INVALID_PARAMETER -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[21]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">AUTHENTICATION_REQUIRED -&gt; 401 UNAUTHORIZED</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[2]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">ACCESS_DENIED -&gt; 403 FORBIDDEN</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[3]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">KEYCLOAK_CLAIMS_INVALID -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[4]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">KEYCLOAK_USER_NOT_FOUND -&gt; 404 NOT_FOUND</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[5]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">KEYCLOAK_ACCOUNT_CONFLICT -&gt; 409 CONFLICT</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[6]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">INVALID_INPUT -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[7]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">INVALID_REQUEST_BODY -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[8]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">MISSING_PARAMETER -&gt; 400 BAD_REQUEST</td>
<td class="path">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)[9]</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,107 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest</a> &gt;
<span class="breadcrumb">every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">3.617s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table()">2026-05-12T15:59:46.344+09:00 INFO 3742337 --- [ Test worker] [traceId=] com.tngtech.archunit.core.PluginLoader : Detected Java version 21.0.10
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,159 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>ApiErrorHttpStatusMapperClientFacingCoverageTest</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">25</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">3.738s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">all_client_facing_error_codes_have_unique_string_codes()</td>
<td class="path" hidden="">all_client_facing_error_codes_have_unique_string_codes()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.014s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode,-HttpStatus)/index.html">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)</a>
</td>
<td class="path" hidden="">each_client_facing_error_code_maps_to_its_exact_expected_http_status(ClientFacingErrorCode, HttpStatus)</td>
<td>21</td>
<td>0</td>
<td>0</td>
<td>0.099s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table().html">every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table()</a>
</td>
<td class="path" hidden="">every_client_facing_error_code_implementation_on_classpath_is_covered_by_the_table()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>3.617s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">exact_mapping_table_must_cover_every_client_facing_error_code_enum_value()</td>
<td class="path" hidden="">exact_mapping_table_must_cover_every_client_facing_error_code_enum_value()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.002s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="unmapped_client_facing_error_code_implementation_falls_back_to_500().html">unmapped_client_facing_error_code_implementation_falls_back_to_500()</a>
</td>
<td class="path" hidden="">unmapped_client_facing_error_code_implementation_falls_back_to_500()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.002s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,107 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - unmapped_client_facing_error_code_implementation_falls_back_to_500()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest</a> &gt;
<span class="breadcrumb">unmapped_client_facing_error_code_implementation_falls_back_to_500()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>unmapped_client_facing_error_code_implementation_falls_back_to_500()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.002s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-unmapped_client_facing_error_code_implementation_falls_back_to_500()">2026-05-12T15:59:46.202+09:00 WARN 3742337 --- [ Test worker] [traceId=] c.p.a.p.s.e.ApiErrorHttpStatusMapper : Unmapped ClientFacingErrorCode reached default branch. type=com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest$1 code=UNKNOWN-001 -&gt; falling back to 500
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-unmapped_client_facing_error_code_implementation_falls_back_to_500()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.config.auth.security.KeycloakJwtAuthenticationConverterTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.config.auth.security.KeycloakJwtAuthenticationConverterTest</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>KeycloakJwtAuthenticationConverterTest</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">convertMapsKeycloakClaimsAndRealmRolesToProjectPrincipal()</td>
<td class="path" hidden="">convertMapsKeycloakClaimsAndRealmRolesToProjectPrincipal()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.011s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.config.logging.AuthAuditLoggingConfigurationTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.config.logging.AuthAuditLoggingConfigurationTest</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>AuthAuditLoggingConfigurationTest</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.015s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">
<a href="writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage().html">writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage()</a>
</td>
<td class="path" hidden="">writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.014s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,107 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.logging.AuthAuditLoggingConfigurationTest</a> &gt;
<span class="breadcrumb">writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.014s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage()">2026-05-12T15:59:49.939+09:00 WARN 3742337 --- [ Test worker] [traceId=0123456789abcdef0123456789abcdef] audit.auth : LOGIN_FAILURE eventType=&quot;LOGIN_FAILURE&quot; emailMasked=&quot;al***@example.com&quot; provider=&quot;LOCAL&quot; reason=&quot;invalid_password&quot;
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-writesAuditEventFieldsAsStructuredKeyValuesInsteadOfFlattenedMessage()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,137 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.config.logging.LoggingConfigurationSmokeTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.config.logging.LoggingConfigurationSmokeTest</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>LoggingConfigurationSmokeTest</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">3</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.083s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">logbackRoutesStructuredConsoleForProdAndMakesAuditFileOptIn()</td>
<td class="path" hidden="">logbackRoutesStructuredConsoleForProdAndMakesAuditFileOptIn()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.002s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">prodStructuredLogstashEncoderWritesMdcAndEventFieldsAsTopLevelJsonMembers()</td>
<td class="path" hidden="">prodStructuredLogstashEncoderWritesMdcAndEventFieldsAsTopLevelJsonMembers()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.060s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract().html">profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract()</a>
</td>
<td class="path" hidden="">profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.019s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.logging.LoggingConfigurationSmokeTest</a> &gt;
<span class="breadcrumb">profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.019s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract()">2026-05-12T15:59:50.019+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Loading from YAML: file [/home/donghyeon/dev/Project-Auth-Server/bootstrap/src/main/resources/application.yml]
2026-05-12T15:59:50.029+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Merging document (no matchers set): {spring={application={name=project-auth-server}, profiles={default=local}, flyway={enabled=false}, jpa={open-in-view=false, properties={hibernate={format_sql=true, default_schema=auth, jdbc={time_zone=UTC}}}}}, server={forward-headers-strategy=native, tomcat={remoteip={internal-proxies=${SERVER_TOMCAT_REMOTEIP_INTERNAL_PROXIES:10\.[0-9]+\.[0-9]+\.[0-9]+|192\.168\.[0-9]+\.[0-9]+|172\.(1[6-9]|2[0-9]|3[0-1])\.[0-9]+\.[0-9]+|127\.[0-9]+\.[0-9]+\.[0-9]+}}}}, app={docs={title=${APP_DOCS_TITLE:Project Auth Server API}, description=${APP_DOCS_DESCRIPTION:인증 서버의 OpenAPI 문서입니다.}, version=${APP_DOCS_VERSION:v1}}, logging={audit={file=${APP_LOGGING_AUDIT_FILE:./logs/audit/auth.log}, max-history=${APP_LOGGING_AUDIT_MAX_HISTORY:30}, max-file-size=${APP_LOGGING_AUDIT_MAX_FILE_SIZE:50MB}, total-size-cap=${APP_LOGGING_AUDIT_TOTAL_SIZE_CAP:2GB}}, access={excluded-path-prefixes=[/actuator, /livez, /readyz, /swagger-ui, /v3/api-docs, /favicon.ico]}}, persistence={migration={location=${APP_PERSISTENCE_MIGRATION_LOCATION:classpath:db/migration}, schema=${APP_PERSISTENCE_MIGRATION_SCHEMA:auth}}}}, springdoc={swagger-ui={path=/swagger-ui.html}}, management={endpoints={web={exposure={include=health}}}, endpoint={health={show-details=never, probes={enabled=true, add-additional-paths=true}}}}}
2026-05-12T15:59:50.030+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Loaded 1 document from YAML resource: file [/home/donghyeon/dev/Project-Auth-Server/bootstrap/src/main/resources/application.yml]
2026-05-12T15:59:50.031+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Loading from YAML: file [/home/donghyeon/dev/Project-Auth-Server/bootstrap/src/main/resources/application-prod.yml]
2026-05-12T15:59:50.032+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Merging document (no matchers set): {spring={config={activate={on-profile=prod}}, datasource={url=${APP_DATASOURCE_URL}, username=${APP_DATASOURCE_USERNAME}, password=${APP_DATASOURCE_PASSWORD}, driver-class-name=org.postgresql.Driver}, jpa={hibernate={ddl-auto=validate}}, security={oauth2={resourceserver={jwt={issuer-uri=${APP_SECURITY_KEYCLOAK_ISSUER_URI}}}}}}, logging={structured={format={console=logstash}}}}
2026-05-12T15:59:50.032+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Loaded 1 document from YAML resource: file [/home/donghyeon/dev/Project-Auth-Server/bootstrap/src/main/resources/application-prod.yml]
2026-05-12T15:59:50.033+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Loading from YAML: file [/home/donghyeon/dev/Project-Auth-Server/bootstrap/src/main/resources/application-dev.yml]
2026-05-12T15:59:50.035+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Merging document (no matchers set): {spring={config={activate={on-profile=dev}}, datasource={url=${APP_DATASOURCE_URL}, username=${APP_DATASOURCE_USERNAME}, password=${APP_DATASOURCE_PASSWORD}, driver-class-name=org.postgresql.Driver}, jpa={hibernate={ddl-auto=validate}}, security={oauth2={resourceserver={jwt={issuer-uri=${APP_SECURITY_KEYCLOAK_ISSUER_URI}}}}}}, management={endpoints={web={exposure={include=health,info,loggers,httpexchanges}}}, endpoint={health={show-details=when-authorized}}, server={address=127.0.0.1, port=${MANAGEMENT_SERVER_PORT:9090}}}}
2026-05-12T15:59:50.035+09:00 DEBUG 3742337 --- [ Test worker] [traceId=] o.s.boot.env.OriginTrackedYamlLoader : Loaded 1 document from YAML resource: file [/home/donghyeon/dev/Project-Auth-Server/bootstrap/src/main/resources/application-dev.yml]
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-profileYamlLocksStructuredLoggingProxyTrustAndDevActuatorContract()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,128 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.config.web.RequestAccessLogFilterTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.config.web.RequestAccessLogFilterTest</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>RequestAccessLogFilterTest</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">2</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.008s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">
<a href="logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader().html">logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader()</a>
</td>
<td class="path" hidden="">logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.006s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">skipsExcludedPaths()</td>
<td class="path" hidden="">skipsExcludedPaths()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,107 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader()</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.web.RequestAccessLogFilterTest</a> &gt;
<span class="breadcrumb">logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader()</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader()</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.006s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader()">2026-05-12T15:59:50.041+09:00 INFO 3742337 --- [ Test worker] [traceId=trace-1234] http.access : ACCESS eventType=&quot;HTTP_ACCESS&quot; method=&quot;GET&quot; requestPath=&quot;/api/v1/auth/me&quot; status=&quot;204&quot; durationMs=&quot;0&quot; remoteIp=&quot;10.0.0.0&quot; actorId=&quot;al***@example.com&quot; result=&quot;success&quot;
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-logsRequestUsingNormalizedRemoteAddrInsteadOfForwardedHeader()">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - failure without data carries no data and no errors</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</a> &gt;
<span class="breadcrumb">failure without data carries no data and no errors</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>failure without data carries no data and no errors</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.112s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-failure without data carries no data and no errors">timestamp = 2026-05-12T15:59:51.224180365, RequestBoundApiResultFactoryPropertyTest:failure without data carries no data and no errors =
|-----------------------jqwik-----------------------
tries = 1000 | # of calls to property
checks = 1000 | # of not rejected calls
generation = RANDOMIZED | parameters are randomly generated
after-failure = SAMPLE_FIRST | try previously failed sample, then previous seed
when-fixed-seed = ALLOW | fixing the random seed is allowed
edge-cases#mode = MIXIN | edge cases are mixed in
edge-cases#total = 20 | # of all combined edge cases
edge-cases#tried = 20 | # of edge cases tried in current run
seed = -9058850209440203024 | random seed to reproduce generated values
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-failure without data carries no data and no errors">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,174 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>RequestBoundApiResultFactoryPropertyTest</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">6</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">1.136s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">
<a href="failure-without-data-carries-no-data-and-no-errors.html">failure without data carries no data and no errors</a>
</td>
<td class="path" hidden="">failure without data carries no data and no errors</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.112s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="success-with-data-carries-data-and-no-errors.html">success with data carries data and no errors</a>
</td>
<td class="path" hidden="">success with data carries data and no errors</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.206s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="timestamp-is-always-iso-instant-form.html">timestamp is always iso instant form</a>
</td>
<td class="path" hidden="">timestamp is always iso instant form</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.476s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="traceId-falls-back-to-dash-for-blank-mdc-value.html">traceId falls back to dash for blank mdc value</a>
</td>
<td class="path" hidden="">traceId falls back to dash for blank mdc value</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.130s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="traceId-falls-back-to-dash-when-mdc-is-empty.html">traceId falls back to dash when mdc is empty</a>
</td>
<td class="path" hidden="">traceId falls back to dash when mdc is empty</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.049s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="traceId-uses-mdc-value-when-present.html">traceId uses mdc value when present</a>
</td>
<td class="path" hidden="">traceId uses mdc value when present</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.137s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - success with data carries data and no errors</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</a> &gt;
<span class="breadcrumb">success with data carries data and no errors</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>success with data carries data and no errors</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.206s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-success with data carries data and no errors">timestamp = 2026-05-12T15:59:51.111386188, RequestBoundApiResultFactoryPropertyTest:success with data carries data and no errors =
|-----------------------jqwik-----------------------
tries = 1000 | # of calls to property
checks = 1000 | # of not rejected calls
generation = RANDOMIZED | parameters are randomly generated
after-failure = SAMPLE_FIRST | try previously failed sample, then previous seed
when-fixed-seed = ALLOW | fixing the random seed is allowed
edge-cases#mode = MIXIN | edge cases are mixed in
edge-cases#total = 100 | # of all combined edge cases
edge-cases#tried = 90 | # of edge cases tried in current run
seed = -6101865511542054141 | random seed to reproduce generated values
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-success with data carries data and no errors">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - timestamp is always iso instant form</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</a> &gt;
<span class="breadcrumb">timestamp is always iso instant form</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>timestamp is always iso instant form</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.476s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-timestamp is always iso instant form">timestamp = 2026-05-12T15:59:50.582927163, RequestBoundApiResultFactoryPropertyTest:timestamp is always iso instant form =
|-----------------------jqwik-----------------------
tries = 1000 | # of calls to property
checks = 1000 | # of not rejected calls
generation = RANDOMIZED | parameters are randomly generated
after-failure = SAMPLE_FIRST | try previously failed sample, then previous seed
when-fixed-seed = ALLOW | fixing the random seed is allowed
edge-cases#mode = MIXIN | edge cases are mixed in
edge-cases#total = 4 | # of all combined edge cases
edge-cases#tried = 4 | # of edge cases tried in current run
seed = 2228257119070284704 | random seed to reproduce generated values
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-timestamp is always iso instant form">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - traceId falls back to dash for blank mdc value</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</a> &gt;
<span class="breadcrumb">traceId falls back to dash for blank mdc value</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>traceId falls back to dash for blank mdc value</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.130s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-traceId falls back to dash for blank mdc value">timestamp = 2026-05-12T15:59:50.716348965, RequestBoundApiResultFactoryPropertyTest:traceId falls back to dash for blank mdc value =
|-----------------------jqwik-----------------------
tries = 1000 | # of calls to property
checks = 1000 | # of not rejected calls
generation = RANDOMIZED | parameters are randomly generated
after-failure = SAMPLE_FIRST | try previously failed sample, then previous seed
when-fixed-seed = ALLOW | fixing the random seed is allowed
edge-cases#mode = MIXIN | edge cases are mixed in
edge-cases#total = 8 | # of all combined edge cases
edge-cases#tried = 8 | # of edge cases tried in current run
seed = -3509992690197299427 | random seed to reproduce generated values
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-traceId falls back to dash for blank mdc value">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - traceId falls back to dash when mdc is empty</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</a> &gt;
<span class="breadcrumb">traceId falls back to dash when mdc is empty</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>traceId falls back to dash when mdc is empty</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.049s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-traceId falls back to dash when mdc is empty">timestamp = 2026-05-12T15:59:50.904645516, RequestBoundApiResultFactoryPropertyTest:traceId falls back to dash when mdc is empty =
|-----------------------jqwik-----------------------
tries = 1000 | # of calls to property
checks = 1000 | # of not rejected calls
generation = RANDOMIZED | parameters are randomly generated
after-failure = SAMPLE_FIRST | try previously failed sample, then previous seed
when-fixed-seed = ALLOW | fixing the random seed is allowed
edge-cases#mode = MIXIN | edge cases are mixed in
edge-cases#total = 4 | # of all combined edge cases
edge-cases#tried = 4 | # of edge cases tried in current run
seed = 2839976709901769851 | random seed to reproduce generated values
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-traceId falls back to dash when mdc is empty">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - traceId uses mdc value when present</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<a class="breadcrumb" href="index.html">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</a> &gt;
<span class="breadcrumb">traceId uses mdc value when present</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>traceId uses mdc value when present</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
<li>
<a class="" href="#">standard output</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.137s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="tab">
<h2>standard output</h2>
<span class="code">
<pre id="root-0-test-stdout-traceId uses mdc value when present">timestamp = 2026-05-12T15:59:50.853664217, RequestBoundApiResultFactoryPropertyTest:traceId uses mdc value when present =
|-----------------------jqwik-----------------------
tries = 1000 | # of calls to property
checks = 1000 | # of not rejected calls
generation = RANDOMIZED | parameters are randomly generated
after-failure = SAMPLE_FIRST | try previously failed sample, then previous seed
when-fixed-seed = ALLOW | fixing the random seed is allowed
edge-cases#mode = MIXIN | edge cases are mixed in
edge-cases#total = 16 | # of all combined edge cases
edge-cases#tried = 16 | # of edge cases tried in current run
seed = 3962357578450179575 | random seed to reproduce generated values
</pre>
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-traceId uses mdc value when present">Copy</button>
</span>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,126 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - com.project.auth.config.web.TraceIdFilterTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<div class="breadcrumbs">
<a class="breadcrumb" href="../index.html">all</a> &gt;
<span class="breadcrumb">com.project.auth.config.web.TraceIdFilterTest</span>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>TraceIdFilterTest</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">2</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.003s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th hidden="">Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">normalizesExternalHeaderBeforePuttingItIntoMdc()</td>
<td class="path" hidden="">normalizesExternalHeaderBeforePuttingItIntoMdc()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.001s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">populatesTraceIdClientIpAndUserAgentIntoMdc()</td>
<td class="path" hidden="">populatesTraceIdClientIpAndUserAgentIntoMdc()</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.002s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,175 @@
body {
margin: 0;
padding: 0;
font-family: sans-serif;
font-size: 12pt;
}
body, a, a:visited {
color: #303030;
}
#content {
padding: 30px 50px;
}
#content h1 {
font-size: 160%;
margin-bottom: 10px;
}
#footer {
margin-top: 100px;
font-size: 80%;
white-space: nowrap;
}
#footer, #footer a {
color: #a0a0a0;
}
#line-wrapping-toggle {
vertical-align: middle;
}
#label-for-line-wrapping-toggle {
vertical-align: middle;
}
ul {
margin-left: 0;
}
h1, h2, h3 {
white-space: nowrap;
}
h2 {
font-size: 120%;
}
.tab-container .tab-container {
margin-left: 8px;
}
ul.tabLinks {
padding: 0;
margin-bottom: 0;
overflow: auto;
min-width: 800px;
width: auto;
border-bottom: solid 1px #aaa;
}
ul.tabLinks li {
float: left;
height: 100%;
list-style: none;
padding: 5px 10px;
border-radius: 7px 7px 0 0;
border: solid 1px transparent;
border-bottom: none;
margin-right: 6px;
background-color: #f0f0f0;
cursor: pointer;
}
ul.tabLinks li.deselected > a {
color: #6d6d6d;
}
ul.tabLinks li:hover {
background-color: #fafafa;
}
ul.tabLinks li.selected {
background-color: #c5f0f5;
border-color: #aaa;
}
ul.tabLinks a {
font-size: 120%;
display: block;
outline: none;
text-decoration: none;
margin: 0;
padding: 0;
}
ul.tabLinks li h2 {
margin: 0;
padding: 0;
}
div.tab {
}
div.selected {
display: block;
}
div.deselected {
display: none;
}
div.tab table {
min-width: 350px;
width: auto;
border-collapse: collapse;
}
div.tab th, div.tab table {
border-bottom: solid 1px #d0d0d0;
}
div.tab th {
text-align: left;
white-space: nowrap;
padding-left: 6em;
}
div.tab th:first-child {
padding-left: 0;
}
div.tab td {
white-space: nowrap;
padding-left: 6em;
padding-top: 5px;
padding-bottom: 5px;
}
div.tab td:first-child {
padding-left: 0;
}
div.tab td.numeric, div.tab th.numeric {
text-align: right;
}
span.code {
display: inline-block;
margin-top: 0;
margin-bottom: 1em;
}
span.code pre {
font-size: 11pt;
padding: 10px;
margin: 0;
background-color: #f7f7f7;
border: solid 1px #d0d0d0;
min-width: 700px;
width: auto;
}
span.wrapped pre {
word-wrap: break-word;
white-space: pre-wrap;
word-break: break-all;
}
label.hidden {
display: none;
}
@@ -0,0 +1,154 @@
.summary {
margin-top: 30px;
margin-bottom: 40px;
}
.summary table {
border-collapse: collapse;
}
.summary td {
vertical-align: top;
}
div.tab table.test-results td {
padding-left: 1em;
}
div.tab table.test-results th {
padding-top: 0.5em;
padding-left: 1em;
}
.breadcrumbs, .breadcrumbs a {
color: #606060;
}
.infoBox {
width: 110px;
padding-top: 15px;
padding-bottom: 15px;
text-align: center;
}
.infoBox p {
margin: 0;
}
.counter, .percent {
font-size: 120%;
font-weight: bold;
margin-bottom: 8px;
}
.duration {
width: 125px;
}
.successRate, .summaryGroup {
border: solid 2px #d0d0d0;
-moz-border-radius: 10px;
border-radius: 10px;
}
.successRate {
width: 140px;
margin-left: 35px;
}
.successRate .percent {
font-size: 180%;
}
.success, .success a {
color: #008000;
}
div.success, .successRate.success {
background-color: #bbd9bb;
border-color: #008000;
}
.failures, .failures a {
color: #b60808;
}
.skipped, .skipped a {
color: #c09853;
}
div.failures, .successRate.failures {
background-color: #ecdada;
border-color: #b60808;
}
ul.linkList {
padding-left: 0;
}
ul.linkList li {
list-style: none;
margin-bottom: 5px;
}
div.metadata td:first-child {
padding-left: 5px;
}
div.metadata td {
padding-left: 5px;
}
.metadata tr.odd {
background-color: #f7f7f7;
border: solid 1px #d0d0d0;
}
.metadata tr.even {
border: solid 1px #d0d0d0;
}
.metadata th, .metadata td {
padding: 5px;
text-align: left;
}
.metadata a {
color: blue;
}
.metadata .unrenderable {
color: darkred;
}
.code {
position: relative;
}
.clipboard-copy-btn {
position: absolute;
top: 8px;
right: 8px;
padding: 4px 8px;
font-size: 0.9em;
cursor: pointer;
}
.successGroup::before {
content: "\23FA";
margin-right: 8px;
color: #008000;
display: inline-block;
}
.failureGroup::before {
content: "\2297";
margin-right: 8px;
color: #b60808;
display: inline-block;
}
.skippedGroup::before {
content: "\2296";
margin-right: 8px;
color: #c09853;
display: inline-block;
}
@@ -0,0 +1,248 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - All Results</title>
<link href="css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<script src="js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>All Results</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
</li>
</ul>
<div class="tab">
<h2>Gradle Test Run :bootstrap:test</h2>
<h1>Gradle Test Run :bootstrap:test</h1>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a class="" href="#">summary</a>
</li>
</ul>
<div class="tab">
<h2>summary</h2>
<div>
<div class="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox">
<div class="counter">76</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox">
<div class="counter">0</div>
<p>skipped</p>
</div>
</td>
<td>
<div class="infoBox duration">
<div class="counter">23.872s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<table class="test-results">
<thead>
<tr>
<th>Child</th>
<th>Name</th>
<th>Tests</th>
<th>Failures</th>
<th>Skipped</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">
<a href="com.project.auth.ApiErrorControllerIntegrationTest/index.html">ApiErrorControllerIntegrationTest</a>
</td>
<td class="path">com.project.auth.ApiErrorControllerIntegrationTest</td>
<td>6</td>
<td>0</td>
<td>0</td>
<td>7.389s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest/index.html">ApiErrorHttpStatusMapperClientFacingCoverageTest</a>
</td>
<td class="path">com.project.auth.architecture.ApiErrorHttpStatusMapperClientFacingCoverageTest</td>
<td>25</td>
<td>0</td>
<td>0</td>
<td>3.738s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.AuthApplicationTests/index.html">AuthApplicationTests</a>
</td>
<td class="path">com.project.auth.AuthApplicationTests</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.011s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.AuthenticatedUserResourceServerIntegrationTest/index.html">AuthenticatedUserResourceServerIntegrationTest</a>
</td>
<td class="path">com.project.auth.AuthenticatedUserResourceServerIntegrationTest</td>
<td>5</td>
<td>0</td>
<td>0</td>
<td>5.741s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.config.auth.security.KeycloakJwtAuthenticationConverterTest/index.html">KeycloakJwtAuthenticationConverterTest</a>
</td>
<td class="path">com.project.auth.config.auth.security.KeycloakJwtAuthenticationConverterTest</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.012s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.config.logging.AuthAuditLoggingConfigurationTest/index.html">AuthAuditLoggingConfigurationTest</a>
</td>
<td class="path">com.project.auth.config.logging.AuthAuditLoggingConfigurationTest</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.015s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.config.logging.LoggingConfigurationSmokeTest/index.html">LoggingConfigurationSmokeTest</a>
</td>
<td class="path">com.project.auth.config.logging.LoggingConfigurationSmokeTest</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td>0.083s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.config.web.RequestAccessLogFilterTest/index.html">RequestAccessLogFilterTest</a>
</td>
<td class="path">com.project.auth.config.web.RequestAccessLogFilterTest</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>0.008s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest/index.html">RequestBoundApiResultFactoryPropertyTest</a>
</td>
<td class="path">com.project.auth.config.web.RequestBoundApiResultFactoryPropertyTest</td>
<td>6</td>
<td>0</td>
<td>0</td>
<td>1.136s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.config.web.TraceIdFilterTest/index.html">TraceIdFilterTest</a>
</td>
<td class="path">com.project.auth.config.web.TraceIdFilterTest</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>0.003s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.ExceptionHandlingIntegrationTest/index.html">ExceptionHandlingIntegrationTest</a>
</td>
<td class="path">com.project.auth.ExceptionHandlingIntegrationTest</td>
<td>20</td>
<td>0</td>
<td>0</td>
<td>1.028s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.SwaggerDocumentationIntegrationTest/index.html">SwaggerDocumentationIntegrationTest</a>
</td>
<td class="path">com.project.auth.SwaggerDocumentationIntegrationTest</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>2.207s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="com.project.auth.ValidationExceptionHandlerIntegrationTest/index.html">ValidationExceptionHandlerIntegrationTest</a>
</td>
<td class="path">com.project.auth.ValidationExceptionHandlerIntegrationTest</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td>0.735s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51PM</p>
</div>
</div>
</body>
</html>
@@ -0,0 +1,228 @@
(function (window, document) {
"use strict";
function changeElementClass(element, classValue) {
if (element.getAttribute("className")) {
element.setAttribute("className", classValue);
} else {
element.setAttribute("class", classValue);
}
}
function getClassAttribute(element) {
if (element.getAttribute("className")) {
return element.getAttribute("className");
} else {
return element.getAttribute("class");
}
}
function addClass(element, classValue) {
changeElementClass(element, getClassAttribute(element) + " " + classValue);
}
function removeClass(element, classValue) {
changeElementClass(element, getClassAttribute(element).replace(classValue, ""));
}
function getCheckBox() {
return document.getElementById("line-wrapping-toggle");
}
function getLabelForCheckBox() {
return document.getElementById("label-for-line-wrapping-toggle");
}
function findCodeBlocks() {
const codeBlocks = [];
const tabContainers = getTabContainers();
for (let i = 0; i < tabContainers.length; i++) {
const spans = tabContainers[i].getElementsByTagName("span");
for (let i = 0; i < spans.length; ++i) {
if (spans[i].className.indexOf("code") >= 0) {
codeBlocks.push(spans[i]);
}
}
}
return codeBlocks;
}
function forAllCodeBlocks(operation) {
const codeBlocks = findCodeBlocks();
for (let i = 0; i < codeBlocks.length; ++i) {
operation(codeBlocks[i], "wrapped");
}
}
function toggleLineWrapping() {
const checkBox = getCheckBox();
if (checkBox.checked) {
forAllCodeBlocks(addClass);
} else {
forAllCodeBlocks(removeClass);
}
}
function initClipboardCopyButton() {
document.querySelectorAll(".clipboard-copy-btn").forEach((button) => {
const copyElementId = button.getAttribute("data-copy-element-id");
const elementWithCodeToSelect = document.getElementById(copyElementId);
button.addEventListener("click", () => {
const text = elementWithCodeToSelect.innerText.trim();
navigator.clipboard
.writeText(text)
.then(() => {
button.textContent = "Copied!";
setTimeout(() => {
button.textContent = "Copy";
}, 1500);
})
.catch((err) => {
alert("Failed to copy to the clipboard: '" + err.message + "'. Check JavaScript console for more details.")
console.warn("Failed to copy to the clipboard", err);
});
});
});
}
function initControls() {
if (findCodeBlocks().length > 0) {
const checkBox = getCheckBox();
const label = getLabelForCheckBox();
checkBox.onclick = toggleLineWrapping;
checkBox.checked = false;
removeClass(label, "hidden");
}
initClipboardCopyButton()
}
class TabManager {
baseId;
tabs;
titles;
headers;
constructor(baseId, tabs, titles, headers) {
this.baseId = baseId;
this.tabs = tabs;
this.titles = titles;
this.headers = headers;
this.init();
}
init() {
for (let i = 0; i < this.headers.length; i++) {
const header = this.headers[i];
header.onclick = () => {
this.select(i);
return false;
};
}
}
select(i) {
this.deselectAll();
changeElementClass(this.tabs[i], "tab selected");
changeElementClass(this.headers[i], "selected");
}
deselectAll() {
for (let i = 0; i < this.tabs.length; i++) {
changeElementClass(this.tabs[i], "tab deselected");
changeElementClass(this.headers[i], "deselected");
}
}
}
function getTabContainers() {
const tabContainers = Array.from(document.getElementsByClassName("tab-container"));
// Used by existing TabbedPageRenderer users, which have not adjusted to use TabsRenderer yet.
const legacyContainer = document.getElementById("tabs");
if (legacyContainer) {
tabContainers.push(legacyContainer);
}
return tabContainers;
}
function initTabs() {
let tabGroups = 0;
function createTab(num, container) {
const tabElems = findTabs(container);
const tabManager = new TabManager("tabs" + num, tabElems, findTitles(tabElems), findHeaders(container));
tabManager.select(0);
}
const tabContainers = getTabContainers();
for (let i = 0; i < tabContainers.length; i++) {
createTab(tabGroups, tabContainers[i]);
tabGroups++;
}
return true;
}
function findTabs(container) {
return findChildElements(container, "DIV", "tab");
}
function findHeaders(container) {
const owner = findChildElements(container, "UL", "tabLinks");
return findChildElements(owner[0], "LI", null);
}
function findTitles(tabs) {
const titles = [];
for (let i = 0; i < tabs.length; i++) {
const tab = tabs[i];
const header = findChildElements(tab, "H2", null)[0];
header.parentNode.removeChild(header);
if (header.innerText) {
titles.push(header.innerText);
} else {
titles.push(header.textContent);
}
}
return titles;
}
function findChildElements(container, name, targetClass) {
const elements = [];
const children = container.childNodes;
for (let i = 0; i < children.length; i++) {
const child = children.item(i);
if (child.nodeType === 1 && child.nodeName === name) {
if (targetClass && child.className.indexOf(targetClass) < 0) {
continue;
}
elements.push(child);
}
}
return elements;
}
// Entry point.
window.onload = function() {
initTabs();
initControls();
};
} (window, window.document));