【发布时间】:2016-08-29 09:11:34
【问题描述】:
我有一个基于Jersey 的服务器,我想用OAuth 2.0 保护它。我认为有两种常见的路径:
- Oltu - 与 Jersey 兼容并且似乎受支持,尽管不如 Spring Security。 This 2012 question 似乎暗示这是要走的路,但我想在 2016 年的情况下得到确认,所以我儿子不再实施不受支持的东西了。
- Spring Security - 似乎很流行,但这条路径意味着将服务器更改为基于 Spring 的 MVC。我不知道这是否值得推荐,因为使用像 Spring 这样被广泛支持的东西的好处和重构的成本。
我的支持是指一个正在持续开发中的项目,完善的社区,提供教程、材料和一些用于客户端(网络、移动、服务器)的库。
哪一个是更强大的选择?还有其他选择吗?
无论如何。有没有很好的参考资料或教程来开始实施这个?
更新
在阅读和了解我提到的两个 OAuth 提供程序几个小时后,我觉得 Apache Oltu 的 documentation 并没有给我太多指导,因为有些关键组件尚未记录在案,但 example 给了我更好地了解必须如何实施Oltu。另一方面,通过Spring Security's material 我知道它仍然可以构建在基于非 Spring MVC 的 java 项目上。但是在基于非 Spring 的项目中,有关 Spring Security 的实现/教程的曝光有限。
另一种方法:
我提出了一种可能更稳定的架构,并且不会关心内部服务器的实现细节(已经使用 Jersey 实现的那个)。在中间有一个专用于安全目的的服务器(授权、身份验证、将令牌存储在自己的数据库中等),充当外部世界和内部服务器之间的网关。它本质上充当中继并来回路由调用,并确保客户端对内部服务器一无所知,并且两个实体仅与安全服务器通信。我觉得这将是前进的道路
- 用另一个安全提供程序替换只是意味着拔出安全服务器实现并添加新的。
- 安全服务器不关心内部服务器实现,调用仍将遵循 RESTful 标准。
感谢您对此方法的建议或反馈。
【问题讨论】:
标签: java spring rest oauth jersey