V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
polyang
V2EX  ›  程序员

前后端分离的 spring cloud 微服务中对 spring security 到底该怎么使用?感觉有点懵。

  •  
  •   polyang · 105 天前 · 1442 次点击
    这是一个创建于 105 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个 spring cloud 系列微服务中通常包含网关微服务、用户微服务、订单微服务(或者其他类似的业务微服务),对于此,我看网上很多文章都说到用 spring security oauth 2.0,然后认证时还需要跳转登录页面,但是现在都是前后端分离的,可能不可能使用认证服务的登录页面吧?
    PS:oauth 2.0 的流程我是清楚的,只是不知道 spring security 到底该怎么在 spring cloud 中应用。
    14 条回复    2021-08-20 09:21:35 +08:00
    harde
        1
    harde  
       105 天前
    技术选型是架构的事,如果你不知道要不要用它,那么答案就是不要用。

    不要为了用某种技术而用某种技术,适合才是最好的。
    jimmyismagic
        2
    jimmyismagic  
       105 天前
    可以不跳啊
    xuanbg
        3
    xuanbg  
       105 天前
    别用,自己撸一个更简单
    totoro52
        4
    totoro52  
       105 天前
    https://v2ex.com/t/796071#reply52 看我这个帖子 别踩坑了
    mmdsun
        5
    mmdsun  
       105 天前 via Android
    可以用 spring cloud security

    有 OAuth2RestTemplate

    https://spring.io/projects/spring-cloud-security
    arbit
        6
    arbit  
       105 天前
    之前也遇到这个问题,看了码云上开源的那几个用 cloud 搭建的项目,后台管理都是用的 oath2 中的密码模式登录,但是最新版本 security 废弃了 authorization Server,很多类过时了,项目也没有更新
    后面考虑了,其实基于角色的 rbac 权限模块也没多少内容,还不如自己实现灵活一点
    开源的可以参考下 sa-token 这个项目
    polyang
        7
    polyang  
    OP
       105 天前
    @harde
    @xuanbg
    @totoro52
    @arbit 谢谢各位,其实我的意思是想知道一下怎么用,不一定生产中会用到,但起码得知道这个,不然以后面试啥的,别人问了答不出来就不好了。
    polyang
        8
    polyang  
    OP
       105 天前
    @mmdsun 好的,谢谢,我去瞅瞅
    arbit
        9
    arbit  
       105 天前
    @polyang #7 我理解的是像做后台管理的时候需要登录,前后端分离用的前端页面,然后登录接口用的 oauth2 的密码模式(授权码模式才需要跳转页面),登录成功后返回 token,再调用其他接口就是了
    然后当有其他三方的应用想接入当前平台的微服务,就用到授权码模式,可以定义一个登录页面,用于三方应用授权码登录了,登录成功后跳转会三方应用的页面
    totoro52
        10
    totoro52  
       105 天前
    @polyang 我强烈不推荐你使用官方的 oauth 包 从 5.2 之前 跳动非常大 官方频繁改动 而且不能完全满足国内业务需求 如果真要 自己手撸比这个快
    x940727
        11
    x940727  
       105 天前
    Spring Cloud 用 Spring Cloud Oauth 的依赖就可以了,如果你需要自己实现一个 OAuth 授权中心,Spring Authorization Server 2021 年 8 月 17 号正式移动到 Spring Project 里面了,估计已经可以正式环境使用了,就是资料少点,之前是 Experimental 的。
    Macolor21
        12
    Macolor21  
       105 天前
    @x940727 正解
    jorneyr
        13
    jorneyr  
       105 天前
    Web 端使用 Ajax 请求数据先到 Gateway,Gateway 发现要请求的资源需要登陆,而你还没登陆,就返回一个未登陆的结果,Web 端跳转到登录页面进行登陆,登陆的方式也是用 Ajax 提交,而不是 Spring Security 的 UsernamePasswordAuthenticationFilter (这个和登录网页一起用的)。
    cheng6563
        14
    cheng6563  
       104 天前
    别用,这组件太乱了,搭项目时搞了大半天,过了几天要修改点需求,前面配的东西全忘了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1170 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 22:47 · PVG 06:47 · LAX 14:47 · JFK 17:47
    ♥ Do have faith in what you're doing.