摘要: 1、Sentinel注解支持 在学习熔断降级之前,我们先来看一下Sentinel的注解支持,我们使用spring-cloud-starter-alibaba-sentinel依赖,无需额外配置即可使用@SentinelResource注解定义资源。 @SentinelResource 用于定义资源, 阅读全文
posted @ 2020-02-12 15:09 caofanqi 阅读(1115) 评论(0) 推荐(0) 编辑
摘要: 1、Sentinel是什么 Sentinel是阿里巴巴在2018年开源的面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护等多个维度来帮助您保障微服务的稳定性。 Sentinel里面涉及两个基本概念:资源和规则。a、资源是 Sentinel 的关键概 阅读全文
posted @ 2020-02-11 19:00 caofanqi 阅读(595) 评论(0) 推荐(0) 编辑
摘要: 前面我们已经完成了通过JWT的认证和授权的改造,可以看到我们的代码中没有认证和授权的过滤器(Filter)了,基本上由SpringSecurity的过滤器来接管了,接下来我们来看一下怎么在SpringSecurity的过滤器链上加上我们自己的逻辑,比如日志和限流。 1、在SpringSecurity 阅读全文
posted @ 2020-02-10 00:42 caofanqi 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 上节我们使用JWT优化了认证机制,通过令牌可以解析出当前用户是谁,并且这个令牌可以在网关到微服务,微服务和微服务之间传递,现在我们来看一下权限的控制 1、简单的ACL控制 最简单的情况就是ACL(访问控制列表),能干什么都在scope里面,但是scope是针对客户端应用的,无法控制各个用户可以做什么 阅读全文
posted @ 2020-02-09 20:40 caofanqi 阅读(1579) 评论(0) 推荐(0) 编辑
摘要: 1、使用JWT来解决认证中存在的问题 之前说认证中存在的问题是效率低,每次都要取认证服务器进行校验;不安全,传递用户信息是放到请求头中的明文。这两个问题的解决方案就是JWT。JWT官网扫盲连接https://jwt.io/introduction/。 因为我们之前发出去的令牌都是一些无意义的串,而J 阅读全文
posted @ 2020-02-08 23:47 caofanqi 阅读(1587) 评论(0) 推荐(0) 编辑
摘要: 目前为止,我们已经实现了一个基于微服务,前后端分离的架构(前端服务使用SpringBoot模拟),如上图;并且在网关上做了限流、认证、审计、授权等安全机制;在前端做了SSO单点登陆。 但是目前的架构还是有一些问题的: 1、限流: 在前面网管安全我们也说过网关上不要做细粒度的限流,主要为服务器硬件设备 阅读全文
posted @ 2020-02-08 16:04 caofanqi 阅读(1450) 评论(0) 推荐(0) 编辑
摘要: 1、修改项目使其基于浏览器cookie的SSO 1.1、修改回调方法,获得到token后,由存放到session改为存放到cookie /** * 回调方法 * 接收认证服务器发来的授权码,并换取令牌 * * @param code 授权码 * @param state 请求授权服务器时发送的sta 阅读全文
posted @ 2020-02-08 02:38 caofanqi 阅读(4008) 评论(0) 推荐(0) 编辑
摘要: 1、access_token的有效期 我们知道 token的有效期,是控制登陆一次能访问多长时间微服务。那么access_token一般设置多长时间比较好呢?因为有access_token可以直接访问微服务,而不需要再次认证,所以access_token不建议设置很长的有效期,一般为一到两个小时,因 阅读全文
posted @ 2020-02-07 20:18 caofanqi 阅读(1947) 评论(0) 推荐(0) 编辑
摘要: 1、两个session,三个有效期 在上一节,实现的其实是基于session的sso,在该方案中有两个session,一个是客户端应用的session,一个是认证服务器的sessioin。一共有三个有效期,两个session的有效期,还有一个token令牌的有效期。他们的作用是如下: 1.1、客户端 阅读全文
posted @ 2020-02-07 01:52 caofanqi 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 1、OAuth2四种模式 1.1、密码模式 这也是我们之前一直使用的模式,流程如下;这种模式下,用户敏感信息直接泄漏给了客户端应用,因此这种模式只能用于客户端应用是我们自己开发的。因此密码模式一般用于自己开发的App或单页面应用。 1.2、授权码模式 授权码模式是四种模式中最繁琐也是最安全的一种模式 阅读全文
posted @ 2020-02-06 18:02 caofanqi 阅读(4022) 评论(0) 推荐(0) 编辑