Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于身份验证的GWT-RPC或RequestFactory?_Java_Authentication_Gwt_Gwt Rpc_Requestfactory - Fatal编程技术网

Java 用于身份验证的GWT-RPC或RequestFactory?

Java 用于身份验证的GWT-RPC或RequestFactory?,java,authentication,gwt,gwt-rpc,requestfactory,Java,Authentication,Gwt,Gwt Rpc,Requestfactory,我正在尝试为我的GWT应用程序构建一个登录屏幕。单击登录按钮时,需要将凭据(用户名和密码)发送到服务器进行身份验证。我想知道哪种服务器通信方法最适合这种情况:GWT-RPC或RequestFactory 我的理解是RequestFactory比GWT-RPC更有效,更值得推荐,但它更像是一个数据/实体/持久性框架,而不是像RPC这样的请求-响应框架。因此,尽管许多GWT Afficionado建议在GWT-RPC上使用RequestFactory,但我认为RequestFactory不能用于此场

我正在尝试为我的GWT应用程序构建一个登录屏幕。单击登录按钮时,需要将凭据(用户名和密码)发送到服务器进行身份验证。我想知道哪种服务器通信方法最适合这种情况:GWT-RPC或RequestFactory

我的理解是RequestFactory比GWT-RPC更有效,更值得推荐,但它更像是一个数据/实体/持久性框架,而不是像RPC这样的请求-响应框架。因此,尽管许多GWT Afficionado建议在GWT-RPC上使用RequestFactory,但我认为RequestFactory不能用于此场景。毕竟,我不想破坏登录请求,我想向服务器发送凭据,执行安全身份验证,并向客户端返回响应

  • 我说得对吗?GWT-RPC是我唯一的选择吗?或
  • 可以使用RequestFactory。如果是,如何(需要查看客户端和服务器代码的代码示例)

  • 使用这两种技术,您可以将此类信息发送到服务器端,但正如您已经指出的,RequestFactory专用于实体管理。在您的情况下,最好使用GWT-RPC,因为为了只向服务器端发送凭据并最终检索身份验证结果,您不需要RequestFactory剩余(增量传输、实体管理)。

    使用这两种技术,您可以向服务器端发送此类信息,但正如您已经指出的,RequestFactory专门用于实体管理。在您的情况下,最好使用GWT-RPC,因为为了只向服务器端发送凭据并最终检索身份验证结果,您不需要RequestFactory剩余(增量传输、实体管理)。

    使用这两种技术,您可以向服务器端发送此类信息,但正如您已经指出的,RequestFactory专门用于实体管理。在您的情况下,最好使用GWT-RPC,因为为了只向服务器端发送凭据并最终检索身份验证结果,您不需要RequestFactory剩余(增量传输、实体管理)。

    使用这两种技术,您可以向服务器端发送此类信息,但正如您已经指出的,RequestFactory专门用于实体管理。在您的情况下,最好使用GWT-RPC,因为为了只在服务器端发送凭据,并最终检索身份验证结果,您不需要RequestFactory剩余(增量传输、实体管理)。

    您可以使用其中任何一种,尽管RF非常适用于
    EntityProxy
    ,它还可以与
    ValueProxy
    一起使用,这意味着可以传输任何类型的数据。RF还有助于执行传递代理类型或基元类型的远程过程

    他说,我将使用主要用于我的应用程序的技术。如果您使用RPC,请在RPC请求中发送您的登录名/密码,但如果您使用RF,请使用它,这样您就不会混合使用RF、RPC和普通Ajax,但不会出现问题

    您必须注意的是,通常情况下,在需要身份验证的应用程序中,在请求RPC或RF时,您必须使用筛选器检查用户是否具有有效会话,因此在发送登录请求的情况下,您必须以某种方式跳转身份验证筛选器

    与安全性相关,这两种场景是相同的,您必须在启用https的环境中执行请求

    [编辑]

    这可能是客户端和远程实现RF登录调用的接口,正如您所看到的,这非常简单,您可以向这些类添加任何需要的方法:

    @Service(value = LoginUserService.class)
    public interface LoginUserRequest extends RequestContext {
      Request<Boolean> login(String username, String password);
    }
    
    public class LoginUserService {
       // Using static you dont need to provide a Locator for the service
       static Boolean login(String username, String password) {
          return true;
       }
    }
    
    @Service(value=LoginUserService.class)
    公共接口LoginUserRequest扩展了RequestContext{
    请求登录(字符串用户名、字符串密码);
    }
    公共类LoginUserService{
    //使用static,您不需要为服务提供定位器
    静态布尔登录(字符串用户名、字符串密码){
    返回true;
    }
    }
    

    与RF的auth filters相关,您可以查看以下内容:

    您可以使用其中任何一种,尽管RF非常适用于
    EntityProxy
    ,但它也被认为适用于
    ValueProxy
    ,这意味着传输任何类型。RF还有助于执行传递代理类型或基元类型的远程过程

    他说,我将使用主要用于我的应用程序的技术。如果您使用RPC,请在RPC请求中发送您的登录名/密码,但如果您使用RF,请使用它,这样您就不会混合使用RF、RPC和普通Ajax,但不会出现问题

    您必须注意的是,通常情况下,在需要身份验证的应用程序中,在请求RPC或RF时,您必须使用筛选器检查用户是否具有有效会话,因此在发送登录请求的情况下,您必须以某种方式跳转身份验证筛选器

    与安全性相关,这两种场景是相同的,您必须在启用https的环境中执行请求

    [编辑]

    这可能是客户端和远程实现RF登录调用的接口,正如您所看到的,这非常简单,您可以向这些类添加任何需要的方法:

    @Service(value = LoginUserService.class)
    public interface LoginUserRequest extends RequestContext {
      Request<Boolean> login(String username, String password);
    }
    
    public class LoginUserService {
       // Using static you dont need to provide a Locator for the service
       static Boolean login(String username, String password) {
          return true;
       }
    }
    
    @Service(value=LoginUserService.class)
    公共接口LoginUserRequest扩展了RequestContext{
    请求登录(字符串用户名、字符串密码);
    }
    公共类LoginUserService{
    //使用static,您不需要为服务提供定位器
    静态布尔登录(字符串用户名、字符串密码){
    返回true;
    }
    }
    

    与RF的auth filters相关,您可以查看以下内容:

    您可以使用其中任何一种,尽管RF非常适用于
    EntityProxy
    ,但它也被认为适用于
    ValueProxy
    ,这意味着传输任何类型。RF还有助于执行传递代理类型或基元类型的远程过程

    他说,我将使用主要用于我的应用程序的技术。如果您正在使用RPC,请发送您的登录/通行证