当前位置: 首页 > 面试题库 >

伪造GWT同步RPC调用

赵锐
2023-03-14
问题内容

首先,我知道进行同步调用是“错误的”,并且知道“不可能”。

但是,在非常复杂的情况下(我不知道如何解释),我需要等待服务器的响应,我正在对GWT RPC调用使用GWT-Platform命令实现。

我正在为此寻找某种“黑客”。

提前致谢。


问题答案:

有解决方案,但这并不容易(例如,您无法翻转单个参数以使其起作用)。GWT在后台使用了普通的JS
XMLHttpRequest。在GWT中,有一个覆盖类型称为com.google.gwt.xhr.client.XMLHttpRequest。此类用于通过HTTP向服务器发送请求。每个JS
XMLHttpRequest首先通过调用open方法来初始化。此方法具有很少的参数,但是第三个参数指定请求是否应该异步。如果将其更改为false,则请求将是同步的。

但是GWT-
RPC不直接使用此类,而是通过RpcRequestBuilder使用它,并且此类也不直接使用XMLHttpRequest,而是使用RequestBuilder。

因此,您需要做的是创建RpcRequestBuilder和RequestBuilder的自定义版本(它们将使用初始化为同步的XMLHttpRequest)。

您可以通过将其转换为ServiceDefTarget来将RPCRequest构建器设置为GWT-RPC服务实例。

您是否仍想拥有同步的GWT-RPC请求?



 类似资料:
  • 问题内容: 是否有直接从Java代码直接调用GWT RPC服务端点的简便方法?我的意思是真正的Java代码,而不是编译成JavaScript的Java代码。 我问是因为我们想针对GWT RPC接口运行性能基准测试/压力测试。我想用Java编写测试工具,并在JVM中运行它(与在浏览器中运行的javascript相反)。 我认为必须有一种方法可以执行此操作,因为我认为GWT托管模式需要这种功能。但是,

  • 主要内容:GWT RPC通讯 介绍,GWT RPC通讯 组件,GWT RPC通讯 示例GWT RPC通讯 介绍 基于 GWT 的应用程序通常由客户端模块和服务器端模块组成。客户端代码在浏览器中运行,服务器端代码在 Web 服务器中运行。客户端代码必须通过网络发出 HTTP 请求才能访问服务器端数据。 RPC,远程过程调用是 GWT 使用的机制,客户端代码可以在其中直接执行服务器端方法。 GWT RPC 是基于 servlet 的。 GWT RPC 是异步的,客户端在通信过程中永远不

  • 我的应用程序有许多RPC调用,它们都有一个.onFailure(可抛出捕获)方法。我有一个在客户端和服务器代码之间共享的类 不记录在例外中。如果用户没有基于会话/cookie/权限等的相关权限,则由服务器抛出。 理想情况下,我希望在将其他异常传递给.onFailure()代码之前,在一个地方处理此异常,因为此处理是如此普遍,而且出于安全考虑,需要如此。有一个GWT。setUncaughtExcep

  • 问题内容: 我在glassfish服务器上使用了gwt,并且尝试通过cookie对我的某些RPC调用进行身份验证。这可能吗?有没有关于如何编码的示例? 问题答案: 仅依靠cookie进行身份验证将使您的网站/服务容易受到跨站点请求伪造/ XSRF / CSRF攻击- 有关GWT应用程序安全性的更多信息,请阅读。 最好的方法是再次检查从cookie以及通过其他方式(作为请求的一部分(标头,自定义字段

  • 我们的遗留应用程序使用GWT RPC,我们想使用RestyGWT,有人能给我提供一个将GWT RPC转换为RestyGWT的示例吗?

  • 这就是网络。我的GWT应用程序中的xml: 我的问题是,当我这样做的时候,我如何使它对GWT-RPC也是可用的 服务模块: 对于定义为以下内容的 RPC: 当应用程序加载时,会抛出以下错误: [错误]javax . servlet . servlet异常:servlet必须绑定为singletons。key[type = com . myapp . server . service impl .