如何在GWT中生成帖子标记?

时间:2010-01-27 09:12:53

标签: gwt post md5 token

我有像

这样的请求
5|0|7|http://localhost:8080/testproject/|29F4EA1240F157649C12466F01F46F60|com.test.client.GreetingService|greetServer|java.lang.String|myInput1|myInput2|1|2|3|4|2|5|5|6|7|

我想知道GWT如何生成md5值29F4EA1240F157649C12466F01F46F60?它是基于客户端IP和日期?谁能指出我正确的代码?我只是找到关于历史令牌的东西,但这看起来与我不同。

2 个答案:

答案 0 :(得分:3)

好的,经过一番研究后我觉得我找到了答案 您应该寻找的关键字是“强名称”(或“ strongName ”)和/或排列,因为它似乎与RPC请求它们发出permuatation强名称(MD5哈希),这样你就可以在服务器端区分请求发送的排列。
核心函数是Util.computeStrongName,它计算所提供的字节数组的MD5哈希值(d'oh),并添加了catch:

/*
 * Include the lengths of the contents components in the hash, so that the
 * hashed sequence of bytes is in a one-to-one correspondence with the
 * possible arguments to this method.
 */

从那里,我追溯到linkers,然后追溯到通过此功能提供Util.computeStrongName的{​​{3}}:

/**
 * The compiled JavaScript code as UTF8 bytes.
 */
byte[][] getJs();

呃,我希望这至少有点帮助;)如果这仍然没有回答你的问题(或者你正在寻找不同的东西),请试试PermutationResult(从trunk/user/src/com/google/gwt/user/client/rpc开始)。

答案 1 :(得分:0)

正如Igor所说,GWT使用应用程序代码的MD5哈希为每个版本的应用程序的每个排列生成唯一的名称。您引用的特定哈希是GWT RPC请求有效内容的一部分,用于标识服务器上的.gwt.rpc序列化策略文件。该策略文件说明哪些Java对象可以作为GWT RPC服务中的请求,响应或抛出异常的一部分进行序列化。