2012-01-14 66 views
4

使用Java EE開發Web服務(醫院管理系統)時,是否有必要檢查每個Web Service調用是否已登錄?Java EE中的Web Service身份驗證

哪種認證方式是最好的JAAS,WS-Security,SAML或其組合或使用own tokens

+0

將投票給任何人誰回答...有人要快速回復... – nkvp 2012-01-15 12:58:27

回答

1

這一切都取決於您的Web服務如何實施/或將如何實施。如果您仍然有選擇,我會建議使用REST方法,使用某種登錄功能對用戶進行身份驗證,然後維護用戶會話。

+0

登錄是更好嗎?在J2EE Web服務應用程序中實現,方法是將SessionPrincipal存儲在SessionContext中,並在每次以編程方式調用某個方法(例如說患者A購買藥物)時檢索該方法,是否將UserPrincipal存儲在SessionContext中以及檢索用戶標識從它在交易中使用,還是最好每次都爲每個交易傳遞一個令牌,並將所有登錄的用戶和令牌發放到一個表中,這樣當購買完成後,令牌可以用於檢索用戶ID? – nkvp 2012-02-04 18:16:06

1

您可以使用過濾器。

這裏有一個如何使用過濾器的例子:

http://viralpatel.net/blogs/2009/01/tutorial-java-servlet-filter-example-using-eclipse-apache-tomcat.html

基本上可以定義你想要的過濾器應用的URL,過濾器授權用戶,然後調用chain.doFilter(請求,響應);在授權後調用請求的方法。

您也可以看看這個jax-rs rest webservice authentication and authorization

就個人而言,我使用令牌進行授權。

+0

好....但它是更好的登錄要在J2EE Web服務應用程序中實現通過將UserPrincipal存儲在SessionContext中並檢索它每一種方法,程序調用時使用 如說病人買了藥,是它良好的編程習慣儲存在SessionContext的UserPrincipal和檢索的用戶ID,從它在交易中使用, 或 是最好每次爲每個事務傳遞一個標記,並存儲所有登錄的用戶和表中發佈的標記,以便在購買完成後可以使用標記來檢索用戶標識。 – nkvp 2012-02-04 18:15:22

+0

在我的設計中,我使用我在本地存儲在數據庫中的令牌。但是,我並不是100%相信這個設計是好的。看看我發佈的這個問題,也許我們在這裏得到一個很好的答案:http://stackoverflow.com/questions/9185362/authentication-and-authorization-for-a-given-scenario – Timo89 2012-02-08 07:40:21