2012-01-10 66 views
1

Iam正在爲我的GAE應用程序尋找適當的身份驗證方式。如何在GAE Web服務中提供身份驗證(使用restlet框架)?

由於我爲我的web服務使用restlet框架,因此我發現cookie是安全服務調用的好方法。現在我的疑惑是:

  1. 什麼是「簽名cookie」?
  2. 在哪裏存儲cookie值?數據庫或任何靜態類?
  3. 如何爲cookie提供加密?
  4. 如果cookie在瀏覽器中被禁用,該怎麼辦?

有沒有比Cookie更好的機制?

回答

1

如果啓用了會議,處理Cookie會自動照顧你:http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions

現在,會話的所有用戶進行處理,這是由你來跟蹤誰被認證:

  1. 當用戶登錄時,add some auth datasession。這些數據可能包含他們的ID到期時間。
  2. 當有請求進入時,如果此數據存在並且仍然有效,請查看會話。
  3. 如果有效,請照常進行。
  4. 如果在會話中無效或無身份驗證數據,則返回錯誤(在REST中)或重定向到登錄頁面。

所有這些功能通常在servlet filter執行。過濾器在servlet處理請求之前和之後處理請求,因此它們爲您提供了一個攔截請求並執行一些處理(如檢查請求是否已通過驗證)的選項。

+0

如果您正在開發RESTful服務器端應用程序,那麼我不會將概念用作會話。 REST意味着客戶端保持客戶端狀態,並且因爲這樣的服務器端會話是邪惡的。查看RESTLet中的CookieSettings:由服務器提供的Cookie設置。這允許服務器端應用程序添加,修改或刪除客戶端上的cookie。 – koma 2012-01-10 16:15:31

+0

@ koma您的意思是,所有的客戶數據都必須以cookies的形式傳遞給每個請求? – Vivek 2012-01-10 17:01:25

+0

@ koma:確實,REST請求可能不是來自瀏覽器,在這種情況下,您需要在代碼中明確處理會話cookie。 OTOH,這是怎麼樣的,然後處理你自己的「餅乾」? – 2012-01-10 17:31:53

相關問題