Как мы можем поймать несанкционированное исключение, которое было выдано кваркусом

#graphql #quarkus #smallrye

Вопрос:

Я сталкиваюсь с этой проблемой, но не знаю, как ее решить.

У меня есть конечная точка 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 и сообщения об ошибке, на которое мы хотим ответить.

Комментарии:

1. Могли бы вы решить эту проблему?