我以为GWT RPC实际上使用RequestBuilder。
有没有一种方法可以提取我的RPC服务异步请求程序使用的RequestBuilder实例?
实际上,我的问题是,如何提取RequestBuilder实例以将身份验证 token 作为http标头插入?有没有一种方法可以将HTTP标头插入RPC服务请求中?
即使我可以在请求中插入http标头,也将如何告知远程servlet期望该auth token ?因此,实际上,GWT RPC是否完全提供了用于安全身份验证的框架?
我认为答案是否定的,或者至少不是方便的方式。我对吗?
我来自将RestEasy与基于SSL的RestyGWT结合使用,我们可以在任何时候插入标头。顺便说一句,RestyGWT构建其请求以使用RequestBuilder。
我的实际动机是比较GWT RPC和GWT JAX-RS(RestyGWT + RestEasy)之间的安全有效性。因此,如果作为答复者,您有另一种详细的论述,将RPC的安全性与直接使用RequestBuilder或REST(而不是直接回答此问题)进行比较,请随时进行阐述。
我是否可以正确地假设GWT RPC不安全/有效,并且应该避免将GWT RPC用于安全的经过身份验证的请求?
最佳答案
您可以让您的async方法返回Request
或RequestBuilder
而不是void
。 Request
允许您用abort()
挂起请求,而RequestBuilder
允许您在发送请求之前修改请求(如果您将return-type声明为RequestBuilder
,则您有责任调用send()
实际发出请求)。
或者,您可以使用 RpcRequestBuilder
为使用特定异步服务代理进行的每个调用自定义RequestBuilder
。