请问如何往一个 Java 服务中集成 oauth2 authorization server(求推荐类库)

2021-01-02 14:58:02 +08:00
 OysterQAQ

希望有做过类似需求的朋友可以提供宝贵的经验(推荐一些类库或者关键词),感谢🙏

需求与场景

使用 oauth2 将自有应用的用户系统接入 flarum 论坛系统,以此来减少论坛维护成本

已经获取的情报

1840 次点击
所在节点    问与答
11 条回复
OysterQAQ
2021-01-02 15:17:56 +08:00
项目使用的 spring boot 目前没有引入 spring security 用的是自己写的基于 jwt 的权限控制
chihiro2014
2021-01-02 15:19:36 +08:00
Spring Security 5.2+已经支持 Oauth2 了,具体可以看看
OysterQAQ
2021-01-02 15:22:17 +08:00
@chihiro2014 只有 resource server 和 client 我所需要的是 authorization server,之前 spring security 就没计划做这个 然后在社区的呼声下有了 spring-authorization-server 但是我找不到文档
chinvo
2021-01-02 15:24:25 +08:00
自己看 OAuth 的 rfc 实现一个啦,核心逻辑很简单的
OysterQAQ
2021-01-02 15:27:11 +08:00
@chinvo 感觉自己实现的怕会有问题哈哈,还是倾向于成熟的类库
WispZhan
2021-01-02 21:10:33 +08:00
如果你要深度定制 authorization server,建议 spring-security-oauth 。 但是后续维护只能自己来。

其他的 Pac4j 、nimbus 、MitreID 都只能给你标准的 OAuth 2.0/OIDC 协议支持。 如果要扩展 Authorization Flow 。你还是得深入了解协议和实现。(个人建议不要魔改任何白皮书里的东西,首先就要吐槽各大国内平台,魔改协议对接定制程度千奇百怪。)

至于你现有 JWT,如果它足够标准化,可以很容易的集成进去。
mikulch
2021-01-03 10:22:38 +08:00
@chihiro2014 可能是我智商问题,这个东西我觉得上手真的好难啊。
OysterQAQ
2021-01-03 10:39:58 +08:00
@mikulch security 是挺复杂的 而且只能看文档了 没有相关书籍
mmdsun
2021-01-03 11:03:24 +08:00
@OysterQAQ spring GitHub 上有很多 samples,配合文档参考应该够了

https://github.com/spring-projects/spring-security/tree/master/samples/boot
OysterQAQ
2021-01-03 11:55:15 +08:00
卧槽,怎么一直置顶了
OysterQAQ
2021-01-03 13:36:46 +08:00
@mmdsun 感觉还是有点怪 可能还是不集成进原有的项目了 引入 spring security 太怪了 单独用 spring-security-oauth 来做个吧 不知道资源服务器和认证服务器能不能做在一起

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741041

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX