Spring Security 怎么用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Terminator0826
V2EX    问与答

Spring Security 怎么用

  • &bsp;
  •   Terminator0826 2022-03-06 14:58:44 +08:00 via Android 2850 次点击
    这是一个创建于 1323 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在公司实习做过后台系统,用 SS 做认证+授权。最近毕设也想参考着做一个后台系统,另外再加一个客户端。

    现在的问题是后台系统和客户端的用户表是分开的( sys_user 和 client_user ),也想统一用 SS 鉴权。我看到公司用 SS 做的后台除了查用户表认证外,还联表查角色菜单进行授权,我打算毕设的后台系统逻辑也这么弄。但客户端比较简单,只需要认证 token 合法性就放行,不需要涉及角色菜单这些,这种情况我觉得用 SS 可能有点重,但非要用的话由于两个用户表互相独立,那就需要走不同的登录逻辑了。大佬们应该如何优雅地使用 SS 处理后台的认证+授权和客户端的认证呢?感激不尽!
    12 条回复    2022-03-06 23:02:47 +08:00
    putaozhenhaochi
        1
    putaozhenhaochi  
       2022-03-06 17:16:17 +08:00 via Android
    太重不用。
    自己写个过滤器。
    pelloz
        2
    pelloz  
       2022-03-06 17:25:33 +08:00
    不要用,等你看懂并且能够正确使用的时候,其他业务代码早就写完了。你自己先简单写个过滤器就行。
    bigbyto
        3
    bigbyto  
       2022-03-06 19:12:40 +08:00 via iPhone
    看一下官方文档吧,写的非常详细了。spring security 的代码质量是 spring 家族中数一数二的高,花点心思会有很大收获。
    Terminator0826
        4
    Terminator0826  
    OP
       2022-03-06 19:43:22 +08:00 via Android
    @bigbyto 其实是想问我后台系统那边用了,客户端那边也用合适吗,客户端那边不像后台系统那种用法,仅仅只是拦截了校验一下 token 。客户端如果用应该怎么区分和后台系统那边的校验逻辑。目前网上也搜不到类似的做法,感觉可以用策略模式区分不同端的逻辑,但是感觉要写好多东西,还是说客户端就像前面老哥说的那样简单写个 filter 就可以了。
    bigbyto
        5
    bigbyto  
       2022-03-06 19:54:06 +08:00 via iPhone
    @Terminator0826 简单验证确实直接用 filter 就可以了,没必要引入一个框架处理。
    leafre
        6
    leafre  
       2022-03-06 19:54:14 +08:00
    需要鉴权的 url 资源使用标识区分开,如 api_admin/**/**,非管理端路径无需鉴权直接放行

    说写个 filter 就能替代 spring security 的可能没被拖库过
    Terminator0826
        7
    Terminator0826  
    OP
       2022-03-06 20:31:57 +08:00 via Android
    @leafre 我客户端的用户表和管理端的用户表是分开的,只是资源标识区分感觉还是不行,因为 SecurityConfig 里面目前配置都只是管理端的拦截逻辑,里面的各种 handler 也是查的管理端的表。总的来说,应该是 config 配置的各种 handler 还有 filter 要怎么优雅地区分才是我想知道的
    cppc
        8
    cppc  
       2022-03-06 21:08:00 +08:00   1
    感觉你说的这个场景就是 spring security oauth 的应用场景,其中 client_user 对应 client authentication ,有很对开源项目可以借鉴,比如 https://github.com/pig-mesh/pig
    Terminator0826
        9
    Terminator0826  
    OP
       2022-03-06 21:11:05 +08:00 via Android
    @cppc 感谢,我一会研究一下
    damai0419
        10
    damai0419  
       2022-03-06 22:14:54 +08:00
    前台后台用一套校验逻辑比较好。
    如果非要前台不涉及鉴权的话,可以前台请求头上搞个标志。后面 SS 判断标志,不进行鉴权。
    damai0419
        11
    damai0419  
       2022-03-06 22:20:42 +08:00   1
    诶嘿嘿,推荐一下自己写的博客。
    Spring Security 系列: https://juejin.cn/column/6965851836221751309
    对你有用的话,给我文章赞一下。
    Terminator0826
        12
    Terminator0826  
    OP
       2022-03-06 23:02:47 +08:00 via Android
    @damai0419 好嘞,学习学习
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2787 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:41 PVG 21:41 LAX 06:41 JFK 09:41
    Do have faith in what you're doing.
    ubao msn 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