将Oauth 2.0添加到基于Jersey的RESTful服务器

var*_*h27 6 java rest spring oauth jersey

我有一个Jersey基本的服务器,我想要保护OAuth 2.0.我认为有两条路径是常见的:

  • Oltu - 与Jersey兼容并且似乎得到支持,尽管不如Spring Security.这个2012年的问题似乎表明这是要走的路,但是我想要在2016年的背景下进行确认,所以我不会实现不再支持的东西了.
  • Spring Security - 它似乎非常受欢迎,但这条路径意味着将服务器更改为基于Spring的MVC.我不知道这是否值得推荐,这是基于使用像Spring一样广泛支持的东西的好处和重构的成本.

在支持下,我指的是一个持续开发的项目,完善的社区,包括教程,材料和一些已经可用的客户端(Web,移动,服务器)库.

哪一个是更强的选择?还有其他选择吗?

在任何情况下.是否有一个很好的参考资料或教程来开始实现这个?


UPDATE

约两个我曾提到的OAuth提供者阅读和理解几个小时后,我觉得自己的Apache Oltu的文件并没有指导我多有一些尚未记录在案的关键部件,而是一个例子告诉我如何更好的图片Oltu必须是实现.另一方面,通过Spring Security的材料,我知道它仍然可以构建在非基于Spring MVC的java项目上.但是,基于非Spring的项目对Spring Security的实现/教程的参与有限.

另一种方法:

我想出了一个可能更稳定的架构,并不关心内部服务器的实现细节(已经使用Jersey实现的).拥有专用于安全目的的服务器(在其自己的数据库中授权,验证,存储令牌等),其作用类似于外部世界和内部服务器之间的网关.它本质上是一个中继,并来回路由呼叫,并确保客户端对内部服务器一无所知,并且两个实体仅与安全服务器通信.我觉得这将是向前迈进的道路

  1. 替换另一个安全提供程序只意味着插入安全服务器实现并添加新安全提供程序.
  2. 安全服务器不关心内部服务器实现,并且调用仍将遵循RESTful标准.

感谢您对此方法的建议或反馈.

jeo*_*vre 1

我认为,使用球衣本身内部实现的 oauth 连接器要简单得多!您是否考虑过使用泽西岛自己的 OAuth(已在泽西岛内部链接)服务器/客户端? https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest/security.html#d0e13146

请查看:

16.3.2. OAuth 2 支持

希望有帮助。:)

  • Jersey 的 OAuth 2 支持仅在客户端。 (4认同)