【问题标题】:Google Cloud Endpoint Backend - Is it possible to retrieve attributes of the HttpSession?Google Cloud Endpoint Backend - 是否可以检索 HttpSession 的属性?
【发布时间】:2013-10-22 11:56:56
【问题描述】:

我正在尝试从 Google Cloud Endpoints 后端方法内部访问 HttpSession 对象(或可让我获取会话属性的类似 API)...

阅读this answer 我了解到我可以将HttpRequest 对象作为参数注入。

我想要做的是检索以前由 Servlet 存储的 facebook 访问令牌

在开发 Web 服务器中,我可以检索 HttpSession 并获得所需的属性:

@ApiMethod
public MyResponse getResponse(HttpServletRequest req) {
    String accessToken = (String) req.getSession().getAttribute("accessToken");
}

但是,一旦我将应用程序部署到 GAE,检索到的 访问令牌 始终为空。

那么有没有办法从 api 方法中恢复会话属性?

如果没有,我如何从其他地方检索我的访问令牌mentioned question 中的答案和 cmets 建议使用数据存储,但我真的想不出一个好的自然候选密钥……就 GAE 身份验证机制而言,我的用户甚至没有登录,我不知道如何从Datastore/memcached或其他任何机制中检索当前用户的access_token

【问题讨论】:

    标签: java google-app-engine google-cloud-endpoints


    【解决方案1】:

    我已提交功能请求以支持生产中的会话,因为我可以确认它现在无法正常工作。

    目前,我建议您继续在标头中的后续请求中传递访问令牌。标头信息同样可以通过注入的HttpServletRequest 获得。

    【讨论】:

    • 嗨,丹,感谢您的报告。我通过客户端ajax请求直接调用端点,我不想在客户端和服务器之间共享令牌......有没有办法在服务器端的标头上注入access_token?也许像Filter)?
    • 另一个问题...似乎 jcache (memcache) 在从 api 方法内部请求缓存条目时也无法在生产服务器上工作(我可以通过 Servlet 检索相同的属性,也可以通过内存缓存控制台...)。你知道 jcache 是否应该工作吗?
    • 那么你是说不能使用谷歌应用引擎端点的会话吗?你提出申请已经一年了,有什么消息吗?
    • @hordurh 现在似乎已修复,已添加到文档中。检查这个:cloud.google.com/appengine/docs/java/config/…
    • @Pega88,链接的文章没有讨论云端点 (CE) 的实现。这些会话已经使用 Servlet,但不适用于 CE。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多