SpringBoot 和 OAuth2.0(整合失败/鉴权失败) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sakurawzt
V2EX    Java

SpringBoot 和 OAuth2.0(整合失败/鉴权失败)

  •  
  •   sakurawzt 2023-09-28 16:43:29 +08:00 2349 次点击
    这是一个创建于 742 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想要自己做一个完整的系统,包含鉴权这方面的,去用 springboot 整合 oauth2.0 的时候,网上一查都是朝来抄去的代码,目前没有找到体系完整的一个项目。 在这过程中还涉及到了 Spring 的一些版本冲突问题,有的功能在 2.7 之后,但是对 oauth2.0 的支持在 2.7 之后就没有能参考的案例了,搞来搞去都搞不好,查来查去都是解概念和不实用的代码。 求助各位大佬,有一份完整的项目代码,或者教教我这套逻辑的具体流程。

    23 条回复    2024-02-01 15:33:35 +08:00
    mmdsun
        1
    mmdsun  
       2023-09-28 16:48:11 +08:00
    官文文档链接的 github 的 sample 那个还挺全的,配合文档一起看。

    https://github.com/spring-projects/spring-security-samples#readme
    sakurawzt
        2
    sakurawzt  
    OP
       2023-09-28 16:53:25 +08:00
    @mmdsun 好的,感谢老哥,我去看看
    MIUIOS
        3
    MIUIOS  
       2023-09-28 17:02:48 +08:00
    https://v2ex.com/t/796071#reply53
    我之前整合过,最终放弃了
    sakurawzt
        4
    sakurawzt  
    OP
       2023-09-28 17:11:53 +08:00
    @totoro52 太难了,还想要加上整个鉴权,我还是在摸索摸索。
    Jrue0011
        5
    Jrue0011  
       2023-09-28 17:15:12 +08:00
    Spring Security 确实绕,不过感觉他设计的还可以,自己有自定义需求的话一般总能找到扩展的方式,就是得撸文档、撸源码
    sakurawzt
        6
    sakurawzt  
    OP
       2023-09-28 17:40:57 +08:00
    @Jrue0011 主要是和 OAuth2.0 的整合,springsecurity 的自定义倒是啃下来了
    cp19890714
        7
    cp19890714  
       2023-09-28 17:44:18 +08:00
    个人建议不要直接使用 spring security oauth2 。
    我现在这个项目,创建的时候,正好是 security-oauth2 大升级的时候, 依赖版本异常混乱。再加上业务上的不正常需求,导致了很多麻烦。
    现在项目中还在用 security oauth2 ,但是不用它的流程,只用它的功能,流程我自己控制。
    security-oauth2 对微服务的支持不全,得自己写。索性我全自己搞了。
    KevinBlandy
        8
    KevinBlandy  
       2023-09-28 17:47:02 +08:00
    推荐一个优质的 spring/boot/data/security/cloud 的中文文档,无广告,无须登录,无须关注,在线读。https://springdoc.cn/docs/
    cp19890714
        9
    cp19890714  
       2023-09-28 17:49:47 +08:00
    security-oauth2 的实现是很不错的。自己手写质量肯定远远不如人家。
    所以我现在禁用了自动装配,自己写 filter ,需要用到 security-oauth2 的功能,就直接拿过来用,比如:oAuth2FeignRequestInterceptor OAuth2RestTemplate AccessTokenProvider
    likeme
        10
    likeme  
       2023-09-28 17:52:21 +08:00
    为什么 spring 的官方文档这么难看懂...hhhh 可能是我太菜了
    123zouwen
        11
    123zouwen  
       2023-09-28 17:52:30 +08:00
    还是看官方例子+ 源码吧, security 这个框架和一般的框架不一样. 一般的框架你只需要知道如何用就可以了,
    security 这一套如果不懂设计思路和源代码,根本就不知道如何用和定制化.

    网上的代码大部分都是过时/错误的.就连最基本的整合 jwt,网上大部分还是让你搞 userService 而非直接集成 resource server.
    cookii
        12
    cookii  
       2023-09-28 18:00:03 +08:00 via Android
    其实 spring 的文档还是写的算可以的了
    sakurawzt
        13
    sakurawzt  
    OP
       2023-09-28 18:23:58 +08:00
    @cp19890714 是的,我去年就是这个情况,然后我被迫放弃了,真的很混乱
    sakurawzt
        14
    sakurawzt  
    OP
       2023-09-28 18:24:17 +08:00
    @KevinBlandy 好的,我去瞅瞅
    qqlyatt
        15
    qqlyatt  
       2023-09-28 18:25:08 +08:00
    没实现过 spring securiy + OAuth2 的话,推荐看慕课网 jojo 老师的课程:《 Spring Security+OAuth2 精讲,打造企业级认证与授权》。这个课程跟着做两三遍差不多就能理解流程了,但是好像不是最新的 spring security + OAuth2 ,那么这个时候还有时间的话,你可以看官方文档了。Spring Security 6 + Spring Authorization Server 1.1.2 就是当前时间节点的最佳实践了。跟着官方文档,对照流程过亿遍。其实自己练习的话还是要按照真实的 RBAC 来设计的,这个是难点,可能在你懂得 security 流程之后,要好好整理的一个点。后期设计的时候尽量按真实的来,会更有意义,最好能前端后端一起来。
    sakurawzt
        16
    sakurawzt  
    OP
       2023-09-28 18:25:09 +08:00
    @cp19890714 需要整体使用的时候就比较混乱了,太痛苦了
    sakurawzt
        17
    sakurawzt  
    OP
       2023-09-28 18:25:25 +08:00
    @likeme 多看就懂了,大家都一样
    sakurawzt
        18
    sakurawzt  
    OP
       2023-09-28 18:26:11 +08:00
    @123zouwen 是的,网上的例子大部分是错的,security 这块我倒是整好了,就是和 oauth2.0 一起用有点难受
    sakurawzt
        19
    sakurawzt  
    OP
       2023-09-28 18:26:47 +08:00
    @qqlyatt 好,我多去了解一下
    dengji85
        20
    dengji85  
       2023-09-29 15:33:13 +08:00
    我以前也研究过一段时间,其实搞清楚 oauth2 的原理后可以不要纠结用 spring security 上全家桶,实际项目要做一些定制的开发,搞清他的 api 要花很长时间,推荐可以用一下 Apache Oltu ,更加轻量和简单
    sakurawzt
        21
    sakurawzt  
    OP
       2023-10-07 10:48:06 +08:00
    @dengji85 好的,我去了解了解
    wjg10086
        22
    wjg10086  
       2023-10-07 10:55:19 +08:00
    sa-token 怎么用,建议用吗
    sakurawzt
        23
    sakurawzt  
    OP
       2024-02-01 15:33:35 +08:00
    @wjg10086 没用过哎
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2813 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 13:10 PVG 21:10 LAX 06:10 JFK 09:10
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86