0

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

  1. 双方管理自己的身份验证(难以同步)有没有办法在两个 JBoss 应用服务器之间同步经过身份验证的用户?
  2. 双方管理自己的身份验证凭据,JSF 客户端将每个请求发送UsernamePasswordCredentials到 Web 服务
  3. 容器管理的身份验证仅在 Web 服务端完成。JSF 客户端尝试请求信息,如果出现类似“peer not authenticated”的响应,JSF 客户端会强制用户输入他的凭据并再次执行请求UsernamePasswordCredentials

我真的不知道这三种方法中的哪一种(或是否)可行。我在网上搜索了最佳实践方法,不幸的是没有任何成功。

是否有任何已知的最佳实践方法来解决这个问题,或者你能给我一个关于如何解决这个问题的提示。

4

1 回答 1

1

广告 1. 是的,您可以使用CASOpenIDOAuth进行授权

广告 2. 这是“真正的 REST”应用程序世界中的常用方法——每次调用都是无状态的,每次都需要传递和检查用户凭据。

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

于 2013-05-21T16:32:42.603 回答