2

我有一个带有 jsps 的 webapp。我没有使用任何 struts 或 mvc 框架。我们使用 Apache CXF 构建了 JAX-RS 服务。

现在我想做以下

  1. 允许用户使用用户名和密码登录。
  2. 对于所有后续对 web 服务的调用,应使用相同的身份验证信息。
  3. 登录用户有一些详细信息(个人资料照片、全名),我想在整个会话中保持不变。
  4. 此外,还定义了它的角色。根据角色,仅允许某些 jax-rs 调用。
  5. JSP 中还使用角色来限制对功能的访问。
  6. 可以在外部访问 Web 服务,因此应该使用身份验证和授权信息。

据我了解,我们不应该在 jax-rs 服务中使用会话。处理上述情况的最佳方法是什么?

4

2 回答 2

2

最好的方法取决于你如何估计它。我这样做的方法是

  1. 在同一个实例上运行 Rest 服务和 JSP
  2. 使用 web.xml 和 CXF 设置安全策略,允许用户/pw 身份验证和授权,ROLES 绑定到 jax-rs url 和 JSP url。
  3. 基于2,可以在外面直接调用jax-rs服务,但需要用户/密码,如你指定。

希望这可以帮助你一点。

于 2012-10-26T02:09:06.477 回答
0

将 cxf 安全验证视为任何其他 http 或 https 验证。您必须拦截请求并将其传递给其余服务。您可以使用任何工具,例如 siteminder,也可以编写 CXF 拦截器来进行自己的安全验证。在拦截器中,您可以调用 SSO 类型的令牌生成器服务器以防您拥有基础设施,或者如果您的架构是以这种方式构建的,则调用数据库。您可以使用缓存来减少资源命中,并可以查看自定义或休眠缓存。启用 Https 必须在服务器配置中完成。如果您有证书,则可以使用相同的证书,否则您可以使用 openssl 生成自己的证书。

于 2013-02-14T10:33:54.247 回答