12 2019 档案
摘要:在轮播图的左侧有一个分类。 这是生产环境上的效果。 鼠标滑动过来,该分类下的子分类就会显示出来。蛋糕和点心是二级分类,它们下面还有三级分类。这就是分类的递归。 可以把所有的分类都归类在一张表内。通过同一张表就可以进行无线的递归了。 数据库表结构 分类的类型 一个网站要是做的复杂的话,下面可能会有四级
阅读全文
摘要:字符串的拼接 avoid using braces in interpolcation when not needs当不需要时,避免使用大括号在interpolcation 如果是一个单词的话,可以不需要加花括号了。 Name non-constant identifiers using lower
阅读全文
摘要:绿色的部分 背景色和当前的图片是对应的 Mysql内,数据表已经包含了一些数据。 编写代码service层 定义为一个接口, 实现类 实现接口类,并加上注解@Service controller 参数为了更通用化,一般会使用枚举。复制Sex复制为YesOrNo的枚举类。 写死的数据尽量要做到通用化。
阅读全文
摘要:在使用通用Mapper并没有让我们自己去写一些sql语句。 让日志打印每次执行的sql语句。仅仅适合生产环境下打印sql语句,如果是在正式环境下日志会非常的多、冗余,是没有必要的。用户量一旦大, 请求就会增多。很多重复的sql语句就会打印在控制台。 日志的配置文件。stdout就是代表的在控制台输出
阅读全文
摘要:发送请求到后端,清楚用户的相应信息。 前端代码 ,退出登陆的方法 实现后端方法 在passportController最下方添加方法。 之前添加的sleep的代码 ,注释掉。 测试 重新maven install然后重启api服务。 点击提出登陆后。 这样就做好了用户的退出功能 结束
阅读全文
摘要:通过日志不同的级别监测每一个service执行的时间。 比如当一个service的执行时间超过了3秒。或者更长的话我们就打印一个error级别的。 如果service运行的时间比较中等,例如2秒。就用warn警告日志。 如果service运行的比较一般,2秒以下。输出info级别。 所以我们是可以通
阅读全文
摘要:开发过程中调试,除了打断点就是日志。 比较low的写法,直接控制台输出。 springboot自带的日志框架。 打开父工程的pom.xml文件 鼠标右键 >选择Diagrams 图片展示的就是所有的依赖。 在右边找到 mapper-spring-boot-starter然后再继续网上找。 可以找到s
阅读全文
摘要:用户信息在页面上展示。 session在html里面是获取不了的。 京东登陆后显示的 右键我们先清除所有的cookie 再来刷新当前的页面。这就可以证明 京东把信用信息存在了cookie中。加密放在cookie里面的 使用注解把,密码和真实姓名 不显示。 这个User类是从数据库逆向生成的实体类,对
阅读全文
摘要:在首页显示用户的昵称。 cookie的大小不能超过4kb session的过期时间,如果设置的是zero就是永不过期。 session的一些基本操作 运行我们的服务 浏览器F12打开。看到sessionid 在下方。RequestHeaders是请求头。 服务端根据jsessionId判断是哪个用户
阅读全文
摘要:从service再想controller这一层去写。 注册和登陆都返回了当前Users对象 实现类 查询使用事务,Supports。andUqualTo添加多个查询条件。 controller 登陆的时候确认密码不是必须的。所以required改为false 对密码进行MD5加密。这里有一个异常 需
阅读全文
摘要:使用VSCode开发前端 注册的代码 前端也定义了userBO和后端的类是对应的 拼接了后端的服务地址。主要用到这个serverUrl 设置生产环境和开发环境的一些url的地址 我们后端的API的端口是8088 前端接口配置好。 当我们输入用户名和后端服务有验证。 跨域 后端设置跨域 完美解决 Sp
阅读全文
摘要:对接前端的源码。 运行前端源码。在本地我们使用tomcat 我们使用9.0的版本 在我们的项目里展开Libraries 内置的tomcat也是9.0 解压出来的目录 webapps用于放我们的项目 把前端页面放在这个webapps的目录下 Mac电脑下的运行。找到bin目录。 也是通过命令行脚本去运
阅读全文
摘要:左侧的全是英文 忽略api 排除一些api在前台的swagger ui上显示。有一些自己用的api,我们不需要让其他人员看到。就可以选择忽略即可。! 把HelloController也忽略掉 重启api的服务,刷新页面。只剩下了passport的Controller 给passport接口加上注解。
阅读全文
摘要:已经开发完了两个接口,一个是注册,一个是判断用户名是否存在。 引入swagger2 引入这一段相应的依赖 父工程内添加引用。核心内容都是在springfox-swagger2 前两个是官方提供的,从groupId就可以看出来。 这一个是自行添加的。由其他的开发人员所发布的UI 编写配置 在Api的微
阅读全文
摘要:上一节,创建用户的service的方法整个都写好了 实现创建用户接口 前端传过来的对象用UserBO去接收,使用@RquestBody 针对BO对象去做校验,用户名、密码、确认密码。校验不仅是在前端要做,在后端也要去做。 用户名和密码都不能为空 密码的长度和两次输入的密码 执行maven insta
阅读全文
摘要:判断用户名是否存在接口就写完了 接下来去写注册,用于创建用户的接口。 service 返回创建完成的用户 前端表单提交的是用户名、密码、和确认密码。包装到一个jsonObject传递到后端。 传到后端以后,它其实属于一种偏向于业务类型的数据包。我们可以统一的定义为BO(Business Object
阅读全文
摘要:maven install 解决junit的错误 由于我们修改了Service所以是需要安装service的 在这里我们进行全局的安装 安装失败了。是在我们的api这一层。 我们在进行maven安装的时候,也会运行这里的测试类 我们也可以通过maven去忽略 这里为了简便,我们直接把这几行代码注释、
阅读全文
摘要:填写用户名imooc密码是123123 故意输错密码 注册成功直接登录进来了。 点击右边的退出。 再次注册imooc会提示。用户名已经存在了。校验的控制是前端发起的。发送异步请求去后端校验。 PDMan里面看一下 用户表的结构。注解没有使用自增长id,在集群、分布式、微服务环境下,所有表的id都要控
阅读全文
摘要:日志,涉及到AOP,根据不通的service的执行时间来显示不通的日志级别。这个会涉及到面向切面。 锁的机制控制商品的库存。 用户邮箱注册所接收到的信息 激活的token的时效性可以是1天或者3天。 结束
阅读全文
摘要:使用了注解使用事务。但是没有开启注解的启用 启动类里面使用注解 @EnableTransactionManager开启事物的管理。 为什么我们没有开启这个注解,还需要在响应的Service里面使用事务的注解???就可以开启事物管理了呢? 之前我们在讲到自动装配的时候,有提到过。 首先我们进入到@En
阅读全文
摘要:Nested 如果存在一个事务的话,那么就会开启一个嵌套的事物。这就必须当前有一个事务存在的情况下 ,它才会以一个子事务的框包裹我们的方法 ,那么这就是一种父子事务。是嵌套的。 如果当前没有事务,就和required执行是一样。 所以这里我们只会以一个存在的事务方式去讲解。 子事务和requires
阅读全文
摘要:Requires_new 会创建一个新的事务,并且会挂起当前的事务(如果当前存在的话), 先把父方法的事务去掉 在子方法里面用Requires_New 数据库内是没有数据的 运行测试方法。这个时候报错了。 数据库内有一条数据 相当于保存了第一个方法的数据 子方法有事务,进行了自动的回滚 开启父方法的
阅读全文
摘要:面试题:spring里面事务的传播有哪几种,分别是怎样的 点进来看@Transactional的源码 在使用这个注解的时候,其实是有一个默认的值 的。表示当前是一定要使用事务。如果当前的事物没有或者不存在,那么会自己新创建一个事务。如果当前方法本身存在事务,那么就不需要再额外的创建一个事务。它会额外
阅读全文
摘要:http://localhost:8088/getStu?id=1203 保存方法 http://localhost:8088/saveStu 多次点击 修改的方法 http://localhost:8088/updateStu?id=1203 删除操作 http://localhost:8088/
阅读全文
摘要:stuMapper下方有红线,是代表它是有问题的 这是IDEA开发工具的一个问题,使用Ecplise是不会有这个问题的。 IDEA设置 一下 比方说这里我们把勾去掉。然后点击ok windows下 这样下方的波浪线就没有了。 完善其他的方法 insert方法 insert和insertSelecti
阅读全文
摘要:基于rest service的一些增删改查的操作。 数据库内预先创建的表 这个表是用来给大家做演示用的 id为主键。设置为自增长。 逆向生成代码 运行,生成代码 运行的控制台输出 可以看到相关的代码已经生成了 拷贝相关生成的代码。mapper工程拷贝两个 一个stuMapper类还有一个xml映射类
阅读全文
摘要:接口层,对外提供api的这一块所涉及的内容。 restful一种通讯方式。restful的请求都是无状态的 保证我们自己写的接口是restful形式的接口,规范不规范是人可以控制的。 强规范用中间的 弱规范用右边的,便于理解。例如saveOrder一看就是保存的方法。modifyOrder一看就是修
阅读全文
摘要:提供的代码 MyMapper类是作者提供的 要用到的配置文件。 包名加类名的设置 数据源 pojo的包名和我们实际的项目是对应的 打开我们的项目foodie-dev这个项目。 里面有com.imooc.pojo的包 生成的mapper的xml的路径 和我们项目里的这个文件夹对应 在逆向工程的文件夹下
阅读全文
摘要:hikari最小连接数没有说是值是多少。最大默认的是10.这里设置了5和20主要是贴合自己公司日常的设置。最大连接数还是和服务器的硬件配置有关。这个值并不是设置的越大越好。这和多线程一样,并不是设置了1千 1万 越大就越好。这里其实是根据自己服务器的配置。像我本地的机器是四核的这里可以设置为10。如
阅读全文
摘要:HikariCP与MyBatis整合 先引入数据源mysql和Mybatis <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5
阅读全文
摘要:现在我们的项目可以通过SpringBoot去运行了。只不过还没有去结合数据层。结合数据层做整合的话。首先第一个想到的就应该是数据源。 数据库这里我们会选择。HikariCP 当springboot由1.X升级到2.X的时候,默认的数据源就发生了更改。spring官方就选择了。HikariCP作为它的
阅读全文
摘要:为什么使用Springboot几乎可以做到零配置,有很多SpringMVC的配置全部都忽略掉了。这是为什么呢?本节就会来聊聊这个问题。 最主要的是基于SpringBoot的自动装配。 运行是通过这个SpringApplication的run方法,我们到run方法里面去看一下。 source就是传入进
阅读全文
摘要:目前通过maven构建了一个聚合的项目,只不过现在还不能去运行。 要跑起来就需要用到Springboot。我们要把相应的jar包依赖放到我们的pom.xml内 springboot父级的依赖。 <parent> <groupId>org.springframework.boot</groupId>
阅读全文
摘要:打开我们的数据库 关系图,把所有的表都拖进来了。这里具体的表机构,先不说,到后面做到这块的时候,再去讲解。 官网上的图。表与表之间的关联通过连接线可以看出来。 我们在设计数据库的时候,并没有这样的关联关系。 外键 外键的好处,数据的完整性,数据的强力执行。 在我们的分布式项目里面。在发并发的情况下,
阅读全文
摘要:这里类似于数据库的版本控制 比如说新增一个用户名 原来的点是黄色的现在出现了橙黄色 保存当前的这个版本 保存后提示 点击,会有同步的按钮 看一下生成的sql语句 点击同步,提示同步成功 数据库表内 。新增的字段。在Revision字段的后面。 任意版本的比较 点击两个版本后,可以看到对比后的sql
阅读全文
摘要:整个项目通过maven构建。 理解业务,设计数据库 开源,跨平台。修改了某个表的字段,都会有记录。 打开软件,左下角有案例 有一个已经设计的项目 教大家如何去创建 默认的创建表的时候,默认的会包含哪些字段。 user在mysql数据库里是一个关键字 所以这里加个s叫做users ctrl+s保存。填
阅读全文
摘要:pojo模块 包含实体类,数据库映射生成的一一对应的实体,都是可以放到pojo这个模块下的 注意,如果没有横线的,一定要加上横线。finish即可 顶级工程的pom文件 让pojo和common相互依赖。 子模块之间相互依赖,必须要构建依赖关系。 <!-- 1.聚合工程里可以分为顶级项目(顶级工程、
阅读全文
摘要:创建顶级工程 选择maven直接next就可以了。 项目名称叫foodie-dev.版本号使用默认的就可以了。 下一步,刚开始的中间的横线是没有的,foodie-dev,我们再加过来。点击finish即可。 这就是生成的项目。 我们要构建一个聚合的工程,在他的最外部其实是一个顶级工程,顶级工程有一个
阅读全文
摘要:一个工厂生产汽车, 业务模块拆分,分层。 通过maven项目聚合。 common.jar:通用的方法,工具类,枚举、等等,它是单独的一个包 pojo.jar:实体类相关的,entity、 mapper.jar:数据层,也算是dao层,因为我们会使用Mybatis,所以这里定义的时候就定义为mappe
阅读全文
摘要:用户达到一定程序,页面都在服务器端渲染的话,对服务器造成很大的影响。 前端和后端通过restful进行请求。数据交互通过json。前端和后端是两个不同的项目,放在不同的服务器。各自需要独立的部署。 所有的静态资源文件部署在Nginx里面, 结束
阅读全文
摘要:Struts有一些安全的漏洞, Spring、SrpingMVC和Spring Boot拦截器的机制是基于AOP,基于切面的拦截。是通过方法去拦截的。Struts是通过过滤器,过滤器是类拦截。 前端选型 vue.js渐进式的。例如有个老项目是jquery做的,现在用vue.js以后,经过周期性的迭代
阅读全文
摘要:单体架构做个电商项目,随后做架构的演变。 先看下整体的效果 http://shop.t.mukewang.com/ 某一个分类下的列表展示 页面数据懒加载 购物车 登陆页 手机端扫码支付成功后, 当前平台 所有交易金额只有一分钱。 结束
阅读全文
摘要:java架构师要掌握的技术 nginx有两台,也有可能会宕机,通过lvs做了主备机,就算宕机也会有备机。 中间用Redis缓存集群。 服务和服务之间是可以进行相互通讯的 服务也可以去调用公共的资源。通过MQ,生产和消费者模式,进行消息的解耦。并且他们之间的调用,是异步调用。 用户的头像,商品的图片附
阅读全文
摘要:web2.0时代 早期传统web开发 文件服务器和数据库 服务器仅仅包含网站,用户所上传的头像等其他数据,会有一个额外的文件服务器存储。 数据库也是单独的服务器。 用户成倍成倍的增加,用户的查询量增加。所有压力都会到数据库上,引入缓存中间件。用户大部分查询都会落到缓存中间件里面,而不是直接落到数据库
阅读全文
摘要:总结 首先讲了api的安全、安全常见的风险、安全措施。然后我们把简单的api演化成一个这种微服务的架构。 首先讲了在网关上可以做哪些安全的措施。然后讲了如何搭建一个安全中心,也就是认证服务器,包括一些权限的服务,怎么把他组织起来,编程一个安全中心,然后,通过安全中心提供统一的身份认证和权限的管理。
阅读全文
摘要:日志信息可以放到kafka,像指标监控就可以从kafka里面拿出日志来,分析日志里面的东西,把日志里面的一些信息变成数字,比如某个关键字出现了多少次,这样的信息同样去做监控,做报警。 调用链监控也是和日志系统可以打通的。可以把某一个请求的TransactionId从日志请求里面把这个请求所有的日志都
阅读全文
摘要:调用链路的监控和统一日志的监控结合起来。比如说我在调用链监控上发现有一个调用订单的服务慢了。通过pinpoint可以看到 。用户发出来的请求,经过了网关,经过了order,经过了pagement。通过pinpoint可以知道慢, 也可以知道哪一环慢了。但是我想看一个整体的日志。这个请求从发出去,到回
阅读全文
摘要:微服务的最后一个组件, 调用链监控,一个请求进来以后,经过N多个微服务,例如a调用了b。b又调用了c,那么在这个过程中看到,整个的调用的链路,然后每一段调用所耗费的时间,帮你去分析你的系统如果出现瓶颈以后,瓶颈到底在什么地方。 pinpoint 点击看一下在线的demo 提供的一些应用的列表 选择o
阅读全文
摘要:ELK搭建起来。采集日志,展示。但是这个架构还有一些问题。 可用性的问题,springboot的应用,随着业务的增长会越来越多。logstash压力就会越来越大。大到一定的程度可能就会吧logstash压崩掉,日志就丢失。 日志信息的传播分享问题。走了ELK的架构,别的系统是不知道你写了什么日志的。
阅读全文
摘要:怎么来控制输出的日志的格式。并且从日志里面提取出来我想要的一些信息。 整个的message是一个大的json格式字符串。 虽然是可以通过关键字搜索到。但是日志看起来并不舒服。 在我们的控制台,日志实际上是这样的。可以很清楚的看到日志的内容。现在混在了json里面。看起来不舒服,而且有些字段丢失掉了。
阅读全文
摘要:采集不可聚合的离散的。日志信息的e ELK是三个系统的简称 LogStash:用来做日志的收集、过滤、格式转换 Kibana:和普罗米修斯的grafana一个意思。主要用来展示数据。 用docker来装ELK的环境 把这个项目克隆到本地 说明里面 告诉你怎么使用。 进入到docker-elk的文件夹
阅读全文
摘要:Gauge用来显示单词一个数的 勾选,这里编程仪表盘 设置仪表盘的最大值、最小值 保存 直接保存 保存成功的提示 返回 这就是我们做的一个简单的仪表盘 这个不适合我们的counter,因为没有最大值 ,上限。 可以拖动调整大小。 折线图 一段时间内访问量的曲线,波动情况。启动我们这个测试类,以1秒1
阅读全文
摘要:自己写代码来定义一个metrics,然后让prmetheus收走,在grafana里面定义一个panel并展示出来。 prometheus的四种metrics指标。虽然所有的metrics都是数字,但是数字和数字之间还不一样。 counter:比如说请求的总量,cpu的使用时间 Gauge:统计的数
阅读全文
摘要:讲师团队 课程安排 阶段五 结束
阅读全文
摘要:先过一下grafana的配置文件 grafana的配置文件。 右键服务的地址、发信人 账号 和面等 配置要连到prometheus上。 登陆的密码是多少,第二行是不允许用户注册。 dashboard.json里面内容太多 不能完全的看懂。 界面 admin password 新建一个dashboar
阅读全文
摘要:pom文件里面加两个依赖。让SpringBoot暴露出一些断点。 在actuator的机制上面加一些prometheus的端点,暴露出来给prometheus可以识别的数据, 配置文件配置。 要暴露的端点 这样就暴露出三个端点,prometheus、info、health。Acuator加上去以后,
阅读全文
摘要:Prmetheus 主要用来做来Metrics的监控和报警,这张图是官方的架构图。 这是他的核心 它的作用是根据我们的配置去完成数据的采集、服务的发现,以及数据的存储。 这是服务的发现,通过Service discovery,prmethesu就会知道去哪里采集数据。Service discover
阅读全文
摘要:因为后面运行的这些可视化的工具都是用docker去run 的。为了避免对docker完全没有概念的同学听不懂,帮助大家从概念上去理解docker是个什么东西。 最核心的东西就是镜像,把它理解为SpringBoot打成的可执行的Jar包,分别是可执行的jar包是java语言写的东西, 镜像是包含了你应
阅读全文
摘要:前面的章节都是围绕这微服务的安全在讲一些东西,包括微服务本身api的安全、网关的安全、怎么去做安全中心,包括认证服务器,权限的服务。权限的设计,怎么来实现SSO。然后sentinel来实现统一的熔断,限流,这些都是和安全相关的知识点。前面讲的这些东西都是保证你的服务不出问题的。但是一个永远不出现问题
阅读全文
摘要:规则的持久化问题。现在的规则都是在内存里的,我们要写一些代码来编一些规则。启动以后规则在内存里了。如果你配置里面有sentinel的dashboard,有流量经过客户端的时候,它会把规则同步给Dashboard,同样的sentinel的dashboard页面上增加或者修改规则后。sentinel也会
阅读全文
摘要:热点规则 热点就是经常访问的数据。很多时候我们希望争对某一些热点数据,然后来进行限制。比如说商品的信息这个服务,我们给它做一个限流,qps是100,某一天我想做一个秒杀活动,可能会有很大的流量,这个时候一个商品的qps就达到100了,这个时候就会把流量给他控制住。其他的商品就都看不了。 我希望秒杀这
阅读全文
摘要:来讲一下降级规则 服务会互相调用,服务A会有一些服务之间的依赖。 假设服务D的响应时间变长了。A调用D就会卡住了。 熔断,某一个服务出现问题,会把服务拖死。如果A出现,会把依赖A的那些服务拖死。 主要原理是在所有服务的前面加一个熔断器。平常是关闭的,如果发现后面的服务不可用,就提示打不开。 服务A调
阅读全文
摘要:阿里2018年开源的。 简单来说就是干三件事,最终的结果就是保证你的服务可用,不会崩掉。保证服务高可用。 流控 先从最简单的场景来入手。 1.引用一个依赖, 2,声明一个资源。 3.声明一个规则 注意依赖是加在你的微服务上的,每一个微服务都要加一个sentinel的依赖。 maven上搜索 声明资源
阅读全文
摘要:限流的改造。 同样注意,不要声明成Spring的Bean 在上面声明Rateliiter 如果能获取到权限继续往下走,没权限就返回,to many request的错误信息。 加到过滤器链上 加载Spring Scurity过滤器链的第一个过滤器之前。 启动网关,测试 复制获取到的令牌。 先走的限流
阅读全文
摘要:第一次请求失败了 打印出了403,第二次更新成功 现在只处理了403这种情况,还有一种情况就是401,就是当前用户需要做身份认证,你没有做身份认证。 401的处理 与403类似,也是在这里配置。EntryPoint入口点。 这个方法里面,我们要实现的接口是AuthenticationEntryPoi
阅读全文
摘要:在代码里,我们没有认证或者授权的filter。认证和授权的工作现在基本上完全由Spring Security的过滤器接管了。 本节就来看下 如何在Spring Security的过滤器链上加入我们自己的逻辑,因为现在这个过滤器链上只处理了认证和授权。我们还有其他的一些安全机制,比如说限流、日志。我们
阅读全文
摘要:授权,权限的控制 令牌里的scope包含fly就有权限访问。根据Oauth的scope来做权限控制, 要让@PreAuthorize生效,就要在启动类里面写一个注解。 里面有一个属性叫做,就是在方法的执行之后可以用注解来插入一些方法安全的相关的一些表达式。 这样orderController里面的注
阅读全文
摘要:网关上认证去做哪些改造 在网关上用jwt去解析用户信息,而不再发送校验令牌的请求了。 之前的时候网关上实际上写了很多的代码 包括认证,发check_token去把token请求,换成用户信息。 这俩是审计日志和授权。 自己写了个MeFilter获取用户的信息 限流 filter都删掉,Spring
阅读全文
摘要:首先来解决认证的问题。 1.效率低,每次认证都要去认证服务器调一次服务。 2.传递用户身份,在请求头里面, 3.服务之间传递请求头比较麻烦。 jwt令牌。 spring提供了工具,帮你在微服务之间传递令牌。让你不用去写额外的代码 服务器端的改造 看一下认证服务器配置的这个类。这里有个tokenSto
阅读全文
摘要:这一章来讲一下,微服务之间的通讯安全。 当前这个架构还存在的问题 在网关上做限流还是有一些问题的。例如我的订单服务限流是100,库存服务限流也是100。但是我的订单服务会调用我的库存服务。那么在网关这,给订单转100个请求,库存转100个请求,最后订单又调了库存,库存会同时受到200个请求。这时候库
阅读全文
摘要:我只要把这个meFilter放在AuthorizationFilter后面就可以了。 authorizationFilter的排序是3 MeFilter设置为4 就可以了。 拿到了username直接返回回来 启动服务测试 启动网关 认证 现在在服务器的session上不再存任何东西了 首先登陆 一
阅读全文
摘要:基于服务器session的SSO的方案,用户的登陆状态都是存在服务器端的 基于浏览器cookie的token实现一个sso,在原来的基础上做进一步的改造。让他不依赖session。而是完全由cookie里的token来决定。 给前端颁发token的时候不是写在前端的session中,而是cookie
阅读全文
摘要:refresh_token过期了怎么办,虽然可以设置一个比较长的有效期,但是终归还是要过期的。 只能从认证服务器重新走认证授权的流程。 两种情况 1,session还没过期的,跳过去之后,直接就知道你是谁,生成一个令牌返回给你 2.session也过期了,重新输用户名密码登陆 也可以去控制,一旦re
阅读全文
摘要:token的有效期 会出现一种情况session有效期还没到。但是token过期了。 用户登陆着,但是token失效了 没法访问服务了。 刷新令牌要和clientId和ClientSecret一起用,发请求才有效。 那么刷新令牌在哪里?在数据库内 我们从来没有配置这个字段。 refresh_toke
阅读全文
摘要:认证服务器 session的有效期。 也就是认证服务器上的session的有效期 生成环境下,认证服务器一定是一个集群。集群。那么session一定是要在所有的服务器之间进行共享的。最简单的方式是用Spring Session来实现。 session共享 在认证服务器的pom.xml加一个依赖。 用
阅读全文
摘要:授权模式改造成了Authorization code完成了改造的同时也实现了SSO。微服务环境下的前后端分离的单点登陆。 把admin的服务重启。刷新页面 并没有让我去登陆,直接就进入了首页。 order的API控制台 只要你在认证服务器上的session没过期。认证服务器就知道你是谁,他就不会让你
阅读全文