Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 AppEngine:创建我自己的用户服务?_Java_Google App Engine_Session_Authentication - Fatal编程技术网

Java AppEngine:创建我自己的用户服务?

Java AppEngine:创建我自己的用户服务?,java,google-app-engine,session,authentication,Java,Google App Engine,Session,Authentication,我已经学习谷歌AppEngine几个星期了。。。现在我正在为我的web应用程序将它与Gwt集成 如果你知道我在说什么的话,“留言簿”GAE教程非常有趣 我喜欢与谷歌账户如此简单的集成,它非常有用,但是 我的客户对此不感兴趣,他想要标准、经典的身份验证系统 因此,我将在数据存储中拥有自己的“用户”实体,以此类推。我能做到 我不能做的是创建我自己的用户服务,以便在我的应用程序中的任何位置检查用户是否登录 我的意思是,我不太擅长管理会话、Cookies或实现目标所需的任何东西。你能帮我吗?如果你唯一的

我已经学习谷歌AppEngine几个星期了。。。现在我正在为我的web应用程序将它与Gwt集成

如果你知道我在说什么的话,“留言簿”GAE教程非常有趣

我喜欢与谷歌账户如此简单的集成,它非常有用,但是

我的客户对此不感兴趣,他想要标准、经典的身份验证系统

因此,我将在数据存储中拥有自己的“用户”实体,以此类推。我能做到

我不能做的是创建我自己的用户服务,以便在我的应用程序中的任何位置检查用户是否登录


我的意思是,我不太擅长管理会话、Cookies或实现目标所需的任何东西。你能帮我吗?

如果你唯一的问题是知道用户是否登录,那么解决方法很简单

在身份验证代码中,一旦用户通过身份验证:

request.getSession().setAttribute("loggedIn", Boolean.TRUE);
代码中的任意位置:

boolean loggedIn = request.getSession().getAttribute("loggedIn") != null;
如果您有“注销”操作:


会话中的属性存储在服务器端。它们不会作为cookie发送到客户端,因此没有安全风险。

如果您唯一的问题是知道用户是否登录,那么解决方案很简单

在身份验证代码中,一旦用户通过身份验证:

request.getSession().setAttribute("loggedIn", Boolean.TRUE);
代码中的任意位置:

boolean loggedIn = request.getSession().getAttribute("loggedIn") != null;
如果您有“注销”操作:


会话中的属性存储在服务器端。它们不是作为cookie发送到客户端的,因此没有安全风险。

您看过联合身份验证选项吗?如果他们不想谷歌登录,OpenID有什么问题吗?@Nick老实说,我认为这是一个有效的请求。虽然有很多人喜欢单点登录,但我遇到过至少同等数量的用户(特别是谷歌生态系统之外的用户)觉得它令人困惑和/或恼火。缺少单一注销解决方案尤其麻烦。@Kevin我不反对-但OP没有提到考虑过OpenID,所以我认为值得一提。有些人可能希望避免使用常规用户API,但仍然对OAuth感到满意,这是有原因的。@Nick我知道OpenId,很抱歉没有提及它。我确认凯文所说的:在这种情况下,我确实需要一个“传统”的身份验证系统,但是。。。。如果我想了解更多有关该解决方案的信息,请您在正确的位置与我联系,好吗?非常感谢你!您看过联邦身份验证选项了吗?如果他们不想谷歌登录,OpenID有什么问题吗?@Nick老实说,我认为这是一个有效的请求。虽然有很多人喜欢单点登录,但我遇到过至少同等数量的用户(特别是谷歌生态系统之外的用户)觉得它令人困惑和/或恼火。缺少单一注销解决方案尤其麻烦。@Kevin我不反对-但OP没有提到考虑过OpenID,所以我认为值得一提。有些人可能希望避免使用常规用户API,但仍然对OAuth感到满意,这是有原因的。@Nick我知道OpenId,很抱歉没有提及它。我确认凯文所说的:在这种情况下,我确实需要一个“传统”的身份验证系统,但是。。。。如果我想了解更多有关该解决方案的信息,请您在正确的位置与我联系,好吗?非常感谢你!在我的用例中,在任何Gwt RemoteServiceServlet扩展中,我都会检查请求/会话,我做到了!:)无论如何,你提到“你唯一的问题”,比如如果有一个好的身份验证系统需要知道更多的事情。你的意思是什么?我的意思是,通常,困难的部分不是如何检查用户是否经过身份验证,而是如何安全地对其进行身份验证(加密和散列密码等),如何确保整个URL集仅可供经过身份验证的用户访问,而不强制显式检查所有受保护的资源(在这里使用过滤器是一个很好的解决方案),以及如何将用户重定向到登录页面,对其进行身份验证,然后将其重定向到他想要访问的页面。在我的用例中,在任何Gwt RemoteServiceServlet扩展中,我都会检查请求/会话,我做到了!:)无论如何,您提到了“您唯一的问题”比如,如果有一个好的身份验证系统需要知道更多的事情。你的意思是什么?我的意思是,通常,困难的部分不是如何检查用户是否经过身份验证,而是如何安全地对其进行身份验证(加密和散列密码等),如何确保整个URL集仅可供经过身份验证的用户访问,而不强制显式检查所有受保护的资源(在这里使用过滤器是一个很好的解决方案),以及如何将用户重定向到登录页面,对其进行身份验证,然后将其重定向到他想要访问的页面。