我有一个基于Jersey
的服务器,我想用OAuth 2.0
加密。有两条我认为常见的路径:将Oauth 2.0添加到基于Jersey的RESTful服务器
- Oltu - 兼容Jersey并且似乎被支持,虽然不如Spring Security。 This 2012 question似乎表明这是要走的路,但我希望在2016年的背景下得到确认,所以我不会实施一些不再支持的事情。
- Spring Security - 它似乎非常流行,但是这条路径意味着将服务器变成基于Spring的MVC。我不知道基于使用像Spring这样得到广泛支持的东西的好处以及重构的成本,这是否值得推荐。
有了支持,我的意思是一个持续发展的项目,建立完善的社区,包括为客户提供的教程,材料和一些库(Web,移动,服务器)。
哪一个是更强的选项?还有其他选择吗?
无论如何。有没有一个很好的参考资料或教程来开始实施?
UPDATE
约两个我曾提到的OAuth提供者,我觉得阅读和理解几个小时后阿帕奇Oltu的documentation没有指导我多有不记录关键部件但是,example给了我一个关于如何实现Oltu
的更好的图片。另一方面,通过Spring Security's material我知道它仍然可以建立在基于非Spring MVC的java项目上。但是,在基于非Spring的项目上,Spring Security的实现/教程暴露有限。
另一种方法:
我想出了一个架构,可能会更稳定,不会在乎内部服务器(使用新泽西州已经实施的一个)的实施细则。有一个专门用于安全目的的服务器(在其自己的数据库中授权,认证,存储令牌等)在中间扮演着外部世界和内部服务器之间的网关的角色。它本质上是一个中继,并且来回路由这些调用,并确保客户端对内部服务器一无所知,并且这两个实体只与安全服务器进行通信。我觉得这将是前进的道路,因为
- 替换与另一个安全提供商只是意味着插入安全服务器实施并添加新的。
- 安全服务器不关心内部服务器的实现,并且调用仍然遵循RESTful标准。
我感谢您对此方法的建议或反馈。
Jersey的OAuth 2支持仅适用于客户端。 –
Takahiko川崎,我一直在阅读这个问题,我不认为vardhinisuresh27要实现是自己的oauth内部机制。为什么不使用已经开发和提供的? – jeorfevre
如果vardhinisuresh27想要实现OAuth 2.0 _client_,则可以使用Jersey的OAuth 2.0支持。另一方面,如果他想要一个OAuth 2.0服务器,我必须指出,泽西岛不支持这种情况。因为他提到了Oltu和Spring Security,它们都是OAuth 2.0服务器解决方案,所以我认为他想实现OAuth 2.0服务器。 –