2013-10-22 46 views
3

我試圖訪問HttpSession對象(或類似的API,讓我獲取會話屬性)從谷歌雲端點後端方法的內部...Google Cloud Endpoint後端 - 是否可以檢索HttpSession的屬性?

閱讀this answer我學習,我可以注入一個HttpRequest對象作爲參數。

我想要做的是檢索一個facebook訪問令牌以前由一個Servlet存儲的

內開發Web服務器,我可以檢索HttpSession並獲得所需的屬性:

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

但是,一旦我在我的應用程序部署到GAE,檢索訪問令牌總是空。

那麼有沒有辦法從API內部恢復會話屬性?

如果沒有,如何從其他位置檢索我的訪問令牌?在mentioned question的答案和評論建議使用數據存儲,但我真的不能想到一個關鍵的好自然候選人......就GAE認證機制而言,我的用戶甚至沒有登錄,我不知道如何從Datastore/memcached或任何其他機制檢索當前用戶的access_token

回答

6

我已經提交了一個功能請求來支持生產中的會話,因爲我可以確認它現在不能正常工作。

現在,我建議您繼續在標頭中的後續請求上傳遞訪問令牌。標題信息通過注入的HttpServletRequest同樣可用。

+0

嗨丹,感謝您的報告。我通過客戶端ajax請求直接調用端點,我不想在客戶端和服務器之間共享令牌......有沒有辦法在服務器端的頭部注入access_token?也許像「過濾器」)? –

+0

另一個問題......看起來像jcache(memcache)在從api方法中請求緩存條目時也無法在生產服務器上工作(我可以通過Servlet以及通過memcache控制檯檢索相同的屬性...) 。你知道jcache是​​否應該工作嗎? –

+0

那麼你是否說與Google應用程序引擎端點一起使用會話是不可能的?你提交請求已經過去了一年,有什麼消息嗎? – hordurh

相關問題