当前位置: 首页 > 知识库问答 >
问题:

Resteasy微配置文件客户端隐藏响应错误

陶永望
2023-03-14
import javax.enterprise.context.ApplicationScoped;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import io.smallrye.mutiny.Uni;

/**
 * A MicroProfile REST client of internal services APIs, such as xxx service, xxx service. To
 * configure the base URL, one needs to add a line to the application.properties file. 
 */
@Path("/api")
@ApplicationScoped
@RegisterRestClient
public interface InternalService {

  @GET
  @Path...
}
{"message":"Handled
Internally","stackFrames":["org.jboss.resteasy.microprofile.client.ExceptionMapping$HandlerException:
Handled Internally","\tat
org.jboss.resteasy.microprofile.client.ExceptionMapping.filter(ExceptionMapping.java:72)","\tat
org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.filterResponse(ClientInvocation.java:715)","\tat
org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:489)","\tat
/**
 * This implementation is a bit of a hack and dependent on Resteasy internals.
 * We throw a ResponseProcessingExceptoin that hides the Response object
 */
@SuppressWarnings({"rawtypes", "unchecked"})
public class ExceptionMapping implements ClientResponseFilter {
    public static class HandlerException extends ResponseProcessingException {
        protected ClientResponse handled;
        protected List<ResponseExceptionMapper> candidates;

我认为这个客户机库很方便,并希望继续使用它,但我如何驯服它或重写它,以便返回真正的错误消息?

共有1个答案

姜俊友
2023-03-14

我不知道是否有可能改变这一点,或者如何改变,但我知道这是为了防止你看起来正在做的事情。

假设客户机A向服务B请求某事。反过来,服务B向服务C请求其他东西。在这里,B充当a的服务器和C的客户机。如果B接受C的错误响应并将其转发给a而不做任何更改,那将是一个坏主意[1]。这样做可能很容易暴露内部实现细节,包括可能的敏感数据。服务B应该处理来自C的错误响应(通过捕获异常),并将自己的错误响应返回给客户机A。

[1]除非B是HTTP代理,但您不使用JAX-RS和MicroProfile RestClient来实现这些代理。

 类似资料:
  • 我在RestEasy客户端-3.0.8中得到以下异常

  • 我的研究使我找到了以下资源: 如何在客户端Javascript中隐藏API键 http://billpatrianakos.me/blog/2016/02/15/securing-api-key-in-a-javascript-single-page-app/

  • 我正在尝试编写简单的RESTEasy客户端。下面给出了示例代码: 我在行中得到异常: 我在控制台中看到以下错误: 更新:我还尝试在POM中添加resteasy jax-rs依赖关系。我还通过在web.xml中添加以下行来验证是否启用了ResteasyProviderFactory: 请查看以下maven依赖项列表: 但这不起作用。 但现在我看到了其他方法的类似异常: 我在行中看到了这个例外: 奇怪

  • 我正在使用RESTEasy客户端从API中检索JSON字符串。JSON有效负载看起来像这样: 现在,我只提取对象映射的<code>项 我将RESTEasy代理框架用于我的API方法。 REST客户端代码: RESTEasy代理接口:

  • 客户端配置项设置示例 lookoutConfig.setProperty(LookoutConfig.LOOKOUT_AGENT_HOST_ADDRESS,"127.0.0.1"); 客户端配置项说明 配置项 对应 SpringBoot 配置项 默认配置值 说明 lookout.enable com.alipay.sofa.lookout.enable true 功能开关,默认是 true。如

  • 不确定发生了什么,但我不知道我的反应在哪里被劫持了。