Java AppEngine:创建我自己的用户服务?
我已经学习谷歌AppEngine几个星期了。。。现在我正在为我的web应用程序将它与Gwt集成 如果你知道我在说什么的话,“留言簿”GAE教程非常有趣 我喜欢与谷歌账户如此简单的集成,它非常有用,但是 我的客户对此不感兴趣,他想要标准、经典的身份验证系统 因此,我将在数据存储中拥有自己的“用户”实体,以此类推。我能做到 我不能做的是创建我自己的用户服务,以便在我的应用程序中的任何位置检查用户是否登录Java AppEngine:创建我自己的用户服务?,java,google-app-engine,session,authentication,Java,Google App Engine,Session,Authentication,我已经学习谷歌AppEngine几个星期了。。。现在我正在为我的web应用程序将它与Gwt集成 如果你知道我在说什么的话,“留言簿”GAE教程非常有趣 我喜欢与谷歌账户如此简单的集成,它非常有用,但是 我的客户对此不感兴趣,他想要标准、经典的身份验证系统 因此,我将在数据存储中拥有自己的“用户”实体,以此类推。我能做到 我不能做的是创建我自己的用户服务,以便在我的应用程序中的任何位置检查用户是否登录 我的意思是,我不太擅长管理会话、Cookies或实现目标所需的任何东西。你能帮我吗?如果你唯一的
我的意思是,我不太擅长管理会话、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集仅可供经过身份验证的用户访问,而不强制显式检查所有受保护的资源(在这里使用过滤器是一个很好的解决方案),以及如何将用户重定向到登录页面,对其进行身份验证,然后将其重定向到他想要访问的页面。