You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus OIDC服务不可用返回500错误如何自定义返回码及响应内容

解决方案

原因说明

Quarkus OIDC模块的异常默认由框架内置的高优先级处理器处理,普通自定义ExceptionMapper优先级更低不会被触发,同时默认开启的HTTP错误页配置会生成HTML格式的响应内容,就是你收到的500错误页。

操作步骤

  1. 实现高优先级的OIDCException专属异常处理器
    添加如下Java类,通过@Priority注解设置极高优先级,确保比框架内置处理器先触发:
import io.quarkus.oidc.OIDCException;
import javax.annotation.Priority;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
@Priority(1) // 数值越小优先级越高,设置为1可覆盖框架默认处理器
public class CustomOIDCExceptionMapper implements ExceptionMapper<OIDCException> {
    @Override
    public Response toResponse(OIDCException e) {
        // 此处STATUS_CODE替换为你需要的自定义错误码,比如503、400等
        return Response.status(STATUS_CODE).build();
    }
}
  1. 关闭默认HTML错误页
    在项目的application.properties(或application.yml)中添加配置,禁用框架自动生成HTML错误页:
quarkus.http.error-page.enabled=false
  1. 可选:关闭OIDC连接重试
    如果不需要OIDC连接失败后重试,可添加如下配置减少响应耗时:
quarkus.oidc.connection.max-retries=0
quarkus.oidc.connection.delay-between-retries=0

验证

重启服务后模拟OIDC服务不可用的场景,接口将返回你指定的状态码,无任何响应体内容。

内容的提问来源于stack exchange,提问作者user1549094

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:09:03