2014-06-24 97 views
0

我正在使用基於適配器的身份驗證。客戶端獲得一些憑證,適配器再次驗證那些企業服務,結果是我現在在我的enterpriseRealm中。工作燈適配器結束會話

後來,受該領域保護的我的HTTP適配器從其他企業服務中獲取一些數據,提供了在原始身份驗證發生時獲得的一些憑據。

一個可能的結果是,企業服務現在可能檢測到用戶的會話不再有效 - 一種可能的情況是用戶已經撤銷了他們的權限 - 因此我的HTTP適配器現在「知道」用戶沒有如果更長的應該被視爲在enterpriseRealm中進行身份驗證,則以後對HTTP適配器的調用應該需要重新進行身份驗證。

我正在尋找某種方式在服務器端「註銷」或以其他方式通知Worklight會話無效。目前爲止我所能看到的最好方法是向客戶端發送特定的錯誤響應,並讓客戶端代碼調用WL.Client.logout()。我對此稍有不安,因爲它要求我的HTTP適配器方法的所有客戶端都能正確處理這種錯誤情況。有沒有更好的選擇?

回答

2

與成功驗證後設置活動用戶的方式類似,您可以使用WL.Server.setActiveUser(「your-realm」,null)API。這將破壞存儲在WL服務器上的存儲的用戶標識。一旦你這樣做 - 下一個傳入的請求將獲得身份驗證挑戰。

0

投機我自己的部分回答了這個問題:

如果使用基於適配器的認證,則客戶端將安裝一個挑戰處理機。所有適配器響應都提供給已安裝的挑戰處理程序,因此如果HTTP適配器返回匹配挑戰處理程序期望我們有機會終止會話的模式的響應。

這使挑戰處理程序成爲一個單一的控制點,不需要使適配器調用進行此檢查的各種客戶端代碼。

我假設挑戰處理程序可以在這裏調用logout();