如何实现REST外观?

时间:2014-08-20 12:59:24

标签: java rest jersey

我需要创建一个将请求转发给其他Web服务的façade。

除了转发外,外观只会对用户进行身份验证/授权。

实现这个的好方法是什么?

我曾经和泽西合作过,也许比手动创建WebTarget更好?

1 个答案:

答案 0 :(得分:1)

您正在寻找的是一个反向代理。除非你有非常令人信服的理由这样做,否则我不会从头开始写任何东西。这是一个非常常见的要求,并且有许多现有(且经过良好测试)的解决方案可供选择。

Apache httpd和Nginx都提供此功能。使用Apache,您可以将mod_proxy与mod_authz_ldap等身份验证模块结合使用,以确保在传递给后端服务器之前对请求进行身份验证。我对Nginx并不熟悉,但我确信它支持类似的东西。

许多商业负载均衡器also support reverse proxies with authentication

如果您没有负载均衡器,则无法将Web服务器放在应用程序前面,或者由于策略原因需要使用Java,因此存在可以直接使用的开源Java实现或延伸。例如,HTTP-Proxy-Servlet

如果你想沿着Java专用道路前进,我的建议是将现有的代理servlet与处理身份验证的现成servlet Filter结合起来。也许像Spring Security这样的东西。如果您碰巧使用Tomcat,它可以为您处理身份验证部分using a valve。其他应用程序服务器可能具有类似的功能。