Spring Boot 与 Kubernetes 云原生微服务实践
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
28227 人已学习
新⼈⾸单¥98
课程目录
已完结/共 94 讲
第一章:课程介绍和案例需求 (5讲)
第十章:项⽬复盘、应用和扩展环节 (2讲)
第十一章:附录 Staffjoy 项目源代码解析 (8讲)
时长 14:53
时长 10:29
时长 10:52
时长 05:09
时长 15:06
时长 16:17
Spring Boot 与 Kubernetes 云原生微服务实践
登录|注册
留言
15
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 40 | 用户认证代码剖析
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 背景说明
03 | 课程目标和主要内容
04 | 课程案例需求
05 | 课程补充说明
06 | 为何采用微服务架构?
07 | 架构设计和技术栈选型
08 | 数据和接口模型设计:账户服务
09 | 数据和接口模型设计:业务服务
10 | Dubbo、Spring Cloud和Kubernetes该如何选型(上)
11 | Dubbo、Spring Cloud和Kubernetes该如何选型(中)
12 | Dubbo、Spring Cloud和Kubernetes该如何选型(下)
13 | 技术中台到底讲什么?
14 | Staffjoy项目结构组织
15 | 谷歌为何采用单体仓库(Mono-Repo)?
16 | 微服务接口参数校验为何重要?
17 | 如何实现统一异常处理?
18 | DTO和DMO为什么要互转?
19 | 如何实现基于Feign的强类型接口?
20 | 为什么框架层就要考虑分环境配置?
21 | 异步处理为何要复制线程上下文信息?
22 | 为你的接口添加Swagger文档
23 | 主流微服务框架概览
24 | 网关和BFF是如何演化出来的(上)
25 | 网关和BFF是如何演化出来的(下)
26 | 网关和反向代理是什么关系?
27 | 网关需要分集群部署吗?
28 | 如何设计一个最简网关?
29 | Faraday网关代码解析(上)
30 | Faraday网关代码解析(下)
31 | 生产级网关需要考虑哪些环节?
32 | 主流开源网关概览
33 | 安全认证架构演进:单块阶段(上)
34 | 安全认证架构演进:单块阶段(下)
35 | 安全认证架构演进:微服务阶段
36 | 基于JWT令牌的安全认证架构
37 | JWT的原理是什么?
38 | JWT有哪两种主要流程?
39 | Staffjoy安全认证架构和SSO
40 | 用户认证代码剖析
41 | 服务调用鉴权代码剖析
42 | 如何设计用户角色鉴权?
43 | Spring Boot微服务测试该如何分类?
44 | 什么是契约驱动测试?
45 | 什么是测试金字塔?
46 | 单元测试案例分析
47 | 集成测试案例分析
48 | 组件测试案例分析
49 | Mock vs Spy
50 | 何谓生产就绪(Production Ready)?
51 | Spring Boot如何实现分环境配置
52 | Apollo vs SpringCloudConfig vs K8s ConfigMap
53 | CAT vs Zipkin vs Skywalking(上)
54 | CAT vs Zipkin vs Skywalking(下)
55 | 结构化日志和业务审计日志
56 | 集中异常监控和Sentry
57 | EFK & Prometheus & Skywalking + Kubernetes 集成架构
58 | 本地开发部署架构和软件需求
59 | 手工服务部署和测试(上)
60 | 手工服务部署和测试(中)
61 | 手工服务部署和测试(下)
62 | SkyWalking调用链监控实验
63 | Docker和Docker Compose简介
64 | 容器镜像构建Dockerfile解析
65 | Docker Compose服务部署文件剖析
66 | 将Staffjoy部署到本地Docker Compose环境(上)
67 | 将Staffjoy部署到本地Docker Compose环境(下)
68 | 到底什么是云原生架构?
69 | Kubernetes背景和架构
70 | Kubernetes有哪些基本概念(上)
71 | Kubernetes有哪些基本概念(下)
72 | 理解Kubernetes节点网络和Pod网络
73 | 深入理解Service和ServiceDiscovery
74 | NodePort vs LoadBalancer vs Ingress
75 | 本地测试Kubernetes部署文件剖析
76 | 本地测试Kubernetes环境搭建
77 | 将Staffjoy部署到本地Kubernetes环境(上)
78 | 将Staffjoy部署到本地Kubernetes环境(下)
79 | 生产环境Kubernetes部署文件剖析
80 | 阿里云Kubernetes环境创建
81 | 将Staffjoy部署到阿里云Kubernetes环境
82 | Kubernetes应用动态配置实验
83 | Kubernetes应用金丝雀发布实验
84 | 阿里云资源释放
85 | 课程复盘
86 | 项目扩展和应用
87 | Account服务
88 | Company服务
89 | Mail、SMS和Bot服务
90 | Faraday服务
91 | WhoAmI服务
92 | WWW服务
93 | 前端应用
94 | 结课测试&结束语
登录 后留言

全部留言(15)

  • 最新
  • 精选
许凯
又听完了,很有收获,想请问老师,有比较通用的资源权限设计和控制方式吗?

作者回复: 目前开源的资源权限设计方案很多,可以在github/gitee上搜一大把。不过我觉得大都不是很通用,所以我自己正在设计开发一个,类似auth0的用户管理和身份认证/鉴权服务,开发完成会开源出来。

2019-07-30
2
14
Alex
外网token内网jwt 的方式还会讲吗?

作者回复: 外网token/内网jwt,这个是一种令牌实现方式,稍微有点复杂,中间涉及到令牌的存储和转化。本课程案例staffjoy,采用简单的jwt令牌,全程无状态,业务上安全性也足够。如果需要,在理解本课程案例代码的基础上,你不难扩展出外网token/内网jwt的方式,只不过需要存储token/jwt的映射关系,可存在DB或Cache中。

2019-08-05
7
Geek_booslink
波波老师,请教一个问题,会员,管理员,分销商分别有对应的后台系统,在微服务架构中是否需要三个授权中心?如果是三个授权中心每个微服务通常会有公共字段 creat_by那这样的话就不统一了,是否需要加一个ladp模块呢? 谢谢

作者回复: 具体做法还是要看上下文,如果不同用户群在业务上是有关联的,可以通过角色区分,尽量建模成一个用户/授权中心,这时用户数据可以存ldap。如果不同用户群在业务上是不关联的,可以采用2个以上用户/授权中心(但也不能太多)分开管理,或者考虑采用支持多租户的用户/授权产品(比如fusionauth.io),这类产品支持一个用户/授权中心,但是可以多租户支持不同用户群分开管理。

2019-09-21
3
虎哥
没有说SSO啊?

作者回复: 上面讲Staffjoy安全认证架构设计中讲到SSO了,用户通过www服务登录,浏览器中就会种cookie,这个cookie种在根域上,例如,生产就是staffjoy.com,后面通过浏览器访问www.staffjoy.cpm或app.staffjoy.com或myaccount.staffjoy.com,只要是xxx.staffjoy.com都不需要再登录(除非jwt过期或者主动等出),会自动登录,因为cookie会自动带上,网关截获cookie,校验里头的jwt,通过就可以访问。

2019-08-01
3
Geek_song
这种架构下,如果用户在另外一台机器登陆,生成了新的jwt,老jwt还是可以调用接口的

作者回复: 对,这种是无状态客户端存储令牌方式,比较简单。如果要严格保证一个用户只能有一个登录session,建议采用集中式令牌存储方式。

2021-07-17
2
庄建斌
jwt给的权限太高了,并且没法控制失效。。。一但被XSS攻击成功,后果就很严重了。

作者回复: jwt如果放在localstorage中有被xss攻击可能,恶意js可以操作localstorage里头令牌。staffjoy的jwt是放在cookie中,而且是http only,js脚本无法操作。但是cookie有csrf(跨站点请求伪造)风险,对于雇员排班这类应用可以接受,如果是其它安全严格网站,需要增加csrf防护,一般web框架都有支持(例如spring security)。

2019-09-14
2
grey927
如果没用feign作为客户端,而是用的原生resttemplate,要如何带着userid传到每个微服务呢?

作者回复: resttemplate支持Interceptor机制动态添加http header的,可以参考:https://www.baeldung.com/spring-rest-template-interceptor

2019-07-31
2
永旭
老师你好, 之前做的项目 给予redis的session实现的, 没有种cookie的步骤, 也会存在cookie, 是springboot集成的容器给做的吗? 能说明下这里为什么要自己实现种cookie呢 ?

作者回复: spring(boot)提供支持集中式session的接口,可以对接redis等缓存,种cookie的动作spring(boot)框架内部已经实现。自己种cookie是为了灵活性,spring(boot)的security/session机制主要针对单块web应用,微服务+spa应用的场景比较复杂,自己处理安全和种cookie会更加灵活,实现也不复杂。

2019-07-31
2
A
springcloud-oauth2 适合吗

作者回复: 基于spring cloud oauth2也可以实现,它也支持生成jwt令牌,只要把它和用户DB数据对接起来,具体参考spring cloud oauth2的文档或者样例。

2020-04-18
1
澜柯
老师好,网页端是可以使用cookie,app端如何设置cookie呢?

作者回复: 你好,app如果是hybrid的,也可以考虑放cookie或者local storage;如果是纯native app,那么android/ios都有自己专门的本地存储机制,然后可以通过http header传递令牌。

2019-08-04
1
收起评论