1

我正面临这个问题,但不知道如何实现它。

我有一个 graphql 端点来获取用户列表,它已经启用了身份验证检查。基本上,当我在没有授权标头的情况下发送请求 fetchUsers 时,它会抛出异常或状态代码以让用户知道,但目前,它只是响应

{
    "errors": [
        {
            "message": null,
            "locations": [
                {
                    "line": 2,
                    "column": 3
                }
            ],
            "path": [
                "fetchUsers"
            ],
            "extensions": {
                "classification": "DataFetchingException"
            }
        }
    ],
    "data": {
        "fetchUsers": null
    }
}

在后端服务器中,有一些异常抛出:

SRGQL012000: Data Fetching Error: io.quarkus.security.UnauthorizedException
        at io.quarkus.security.runtime.interceptor.check.AuthenticatedCheck.apply(AuthenticatedCheck.java:28)
        at io.quarkus.security.runtime.interceptor.SecurityConstrainer.check(SecurityConstrainer.java:28)
        at io.quarkus.security.runtime.interceptor.SecurityConstrainer_Subclass.check$$superforward1(SecurityConstrainer_Subclass.zig:100)
        at io.quarkus.security.runtime.interceptor.SecurityConstrainer_Subclass$$function$$1.apply(SecurityConstrainer_Subclass$$function$$1.zig:41)
        at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54)
        at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62)
        at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49)
        at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(InvocationInterceptor_Bean.zig:521)

有什么方法可以捕获这个未经授权的异常并对其进行自定义,以响应 401 和我们想要响应的错误消息。

4

0 回答 0