Google app engine getCurrentUser在AppEngine中的魔力-它是如何工作的?

Google app engine getCurrentUser在AppEngine中的魔力-它是如何工作的?,google-app-engine,Google App Engine,Google如何允许调用userService.getCurrentUser(),而不让它传递HttpServletRequest参数?我希望扩展UserService,但它不允许我轻松地做到这一点 我已经创建了自己的身份验证机制,它与UserService重叠,这样我就可以允许支持Google的用户和自动登录的用户。但是我很想知道在从任何函数调用时如何发送getCurrentUser 这是当前的工作流程 请求保护资源->过滤器->在某处设置当前用户,但我不确定在哪里,这样我就可以在不传递htt

Google如何允许调用userService.getCurrentUser(),而不让它传递HttpServletRequest参数?我希望扩展UserService,但它不允许我轻松地做到这一点

我已经创建了自己的身份验证机制,它与UserService重叠,这样我就可以允许支持Google的用户和自动登录的用户。但是我很想知道在从任何函数调用时如何发送getCurrentUser

这是当前的工作流程

请求保护资源->过滤器->在某处设置当前用户,但我不确定在哪里,这样我就可以在不传递httprequests的情况下从应用程序的其余部分调用它

在我的代码中

GetCurrentUser()应返回筛选器中的用户集。注意,我不会传递原始的HttpServletRequest


谢谢。

经过几天的研究,我们可以安全地将会话信息保存在ThreadLocal中。这是在servlet过滤器中设置的。

由于每个servlet在单个线程中执行,因此我们可以从代码中安全地调用getCurrentUser,然后从threadlocal读取

不过要注意。线是回收的。因此,您可以获得一个线程,该线程为不同的用户设置了threadlocal。您必须确保每次都重置它