带有GWT Requestfactory的Http状态码

And*_* Ka 1 gwt requestfactory

如果我使用GWT Requestfactory,那么向客户端发送"404未找到"或"401未授权"的推荐方法是什么?

问候安德烈亚斯

Tho*_*yer 6

RequestFactory是一种RPC协议,而不是REST协议.因此,首先,您不会发送"未找到404":这意味着您的客户端应用程序甚至不知道如何与服务器通信.

至于"401未经授权",嗯,这取决于.

  • 如果你想保护对RequestFactoryServlet整体的访问,那么在服务器端使用servlet过滤器发送响应,并在客户端使用自定义RequestTransport(最简单的是简单扩展DefaultRequestTransport)来捕获响应并相应地采取行动.
  • 如果你只想保护几种方法,或只允许某些方法访问特定用户(例如只允许管理员调用方法deleteThisThing),那么你有几种选择,但在所有情况下你都不想调用这些方法如果用户未被授权,则来自客户端应用程序的方法(例如,如果用户不是管理员,则不显示删除此事物按钮):
    • 在方法本身中执行,抛出异常(可以RequestFactoryServlet.getThreadLocalRequest().getUserPrincipal()用来获取当前用户)
    • 使用ServiceLayerDecorator覆盖invoke方法的地方进行检查(可能基于方法本身的一些注释)并report()在用户未经授权的情况下调用