fix(auth): preserve provider readiness status

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
This commit is contained in:
XiaoSeS 2026-07-30 17:59:58 +08:00
parent fa1f9685b0
commit 8bca180a67
2 changed files with 6 additions and 3 deletions

View file

@ -55,7 +55,7 @@ public final class IdentityProviderRouteReadinessFilter
? null
: registrationRepository.findByRegistrationId(registrationId);
if (registration == null) {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
@ -70,14 +70,14 @@ public final class IdentityProviderRouteReadinessFilter
"Identity provider route '{}' rejected before upstream I/O: {}",
registration.getRegistrationId(),
exception.getReasonCode());
response.sendError(status);
response.setStatus(status);
return;
} catch (RuntimeException exception) {
log.error(
"Identity provider route '{}' readiness check failed",
registration.getRegistrationId(),
exception);
response.sendError(
response.setStatus(
HttpServletResponse.SC_SERVICE_UNAVAILABLE);
return;
}

View file

@ -71,6 +71,7 @@ class IdentityProviderRouteReadinessFilterTest {
filter.doFilter(request, response, chain);
assertThat(response.getStatus()).isEqualTo(503);
assertThat(response.isCommitted()).isFalse();
verify(chain, never()).doFilter(request, response);
}
@ -89,6 +90,7 @@ class IdentityProviderRouteReadinessFilterTest {
filter.doFilter(request, response, chain);
assertThat(response.getStatus()).isEqualTo(403);
assertThat(response.isCommitted()).isFalse();
verify(chain, never()).doFilter(request, response);
}
@ -104,6 +106,7 @@ class IdentityProviderRouteReadinessFilterTest {
filter.doFilter(request, response, chain);
assertThat(response.getStatus()).isEqualTo(403);
assertThat(response.isCommitted()).isFalse();
verify(readinessService, never())
.requireReady(registration);
verify(chain, never()).doFilter(request, response);