2013-05-19 219 views
0

我的任务是将现有的JSF应用程序拆分为JAX-RS Web服务和JSF Web客户端。分割应该在业务层完成。客户端和服务器都应该运行在不同的JBoss AS7.1上。现在,双方都在使用容器管理的身份验证。对于角色为CUST的用户,JSF客户端仅授予对uri-path/customers/*的访问权限,对于角色为ADMIN的用户授予对/ admin/*的访问权限。当然,网络服务也保护他的资源(角色:CUST & AMDIN)。我明白Web服务部分的身份验证。所以我的问题是如何为JSF客户端提供适当的身份验证。对我来说,有三种可能性:JAX-RS客户端和会话管理

  1. 双方都管理着自己的身份验证(难以同步)有没有办法在两个JBoss应用服务器之间的身份验证的用户同步?
  2. 双方管理自己的身份验证凭据和,JSF客户端与每个请求UsernamePasswordCredentials到Web服务
  3. 容器管理的认证仅在网络服务端进行发送。在JSF的客户端尝试请求信息,并像一个响应的情况下:“同行不认证”的JSF客户端强制用户输入他的证件,与UsernamePasswordCredentials

我真的有再次执行rquest没有(或者)这三种方法之一是否可行的想法。我已经在网上搜索了最佳实践方法,但不幸没有取得任何成功。

是否有任何已知的最佳实践方法解决这个问题,或者你能否告诉我如何解决这个问题。

回答

1

广告是的,你可以使用CASOpenIDOAuth授权

广告2.这是在“真正的休息”应用世界上通用的方法 - 每次调用是无状态的,每次用户凭据需要传递并检查。

Ad 3.如果JSF应用程序仅包含无需身份验证即可访问的数据(JSF为普通模板),这是合理的解决方案。

+0

很好的答案,THX! OAuth似乎是最合适的解决方案。 JBoss为[使用OAuth进行身份验证]提供了一个很好的文档(http://docs.jboss.org/resteasy/2.0.0.GA/userguide/html_single/#d0e2687) –