2012-01-14 65 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