
day17 用户认证 Zuul
文章平均质量分 54
day17 用户认证 Zuul
feng_fly_28
这个作者很懒,什么都没留下…
展开
-
17-身份校验-身份校验过虑器编写
使得原来的过滤器失效方法1:注释@Component方法2:shouldFilter改为return false;5 身份校验5.1 需求分析本小节实现网关连接Redis校验令牌:1、从cookie查询用户身份令牌是否存在,不存在则拒绝访问2、从http header查询jwt令牌是否存在,不存在则拒绝访问3、从Redis查询user_token令牌是否过期,过期则拒绝访问5.2 编码代码1、配置application.yml配置 redis链接参数:2、使用StringRed原创 2021-08-20 17:55:58 · 176 阅读 · 0 评论 -
16-网关-过虑器
4.5 过虑器Zuul的核心就是过虑器,通过过虑器实现请求过虑,身份校验等。4.5.1 ZuulFilter自定义过虑器需要继承 ZuulFilter,ZuulFilter是一个抽象类,需要覆盖它的四个方法,如下:1、 shouldFilter:返回一个Boolean值,判断该过滤器是否需要执行。返回true表示要执行此过虑器,否则不执行。 2、 run:过滤器的业务逻辑。 3、 filterType:返回字符串代表过滤器的类型,如下 pre:请求在被路由之前执行 routing:在路由请求时调原创 2021-08-20 17:43:55 · 114 阅读 · 0 评论 -
15-网关-路由配置
4.4 路由配置4.4.1需求分析Zuul网关具有代理的功能,根据请求的url转发到微服务,如下图:客户端请求网关/api/learning,通过路由转发到/learning客户端请求网关/api/course,通过路由转发到/course4.4.2 路由配置在appcation.yml中配置:zuul: routes: manage‐course: #路由名称,名称任意,保持所有路由名称唯一 path: /course/** serviceId: xc‐原创 2021-08-20 17:22:33 · 491 阅读 · 0 评论 -
14-网关-介绍网关及搭建网关工程
4 Zuul网关4.1 需求分析网关的作用相当于一个过虑器、拦截器,它可以拦截多个系统的请求。本章节要使用网关校验用户的身份是否合法。4.2 Zuul介绍什么是Zuul?Spring Cloud Zuul是整合Netflix公司的Zuul开源项目实现的微服务网关,它实现了请求路由、负载均衡、校验过虑等 功能。官方:https://github.com/Netflix/zuul什么是网关?服务网关是在微服务前边设置一道屏障,请求先到服务网关,网关会对请求进行过虑、校验、路由等处理。有了服原创 2021-08-20 16:14:21 · 341 阅读 · 0 评论 -
13-用户退出-前端
3.4 前端3.4.1 需求分析在用户中心前端工程(xc-ui-pc-learning)开发退出页面。3.4.2 Api方法在用户中心工程增加退出的api方法在base模块的login.js增加方法如下:/*退出*/export const logout = params => {return http.requestPost('/openapi/auth/userlogout');}3.4.3退出页面1、在用户中心工程创建退出页面参考:2、路由配置import Log原创 2021-08-20 16:12:24 · 228 阅读 · 0 评论 -
12-用户退出-服务端
3 用户退出3.1 需求分析操作流程如下:1、用户点击退出,弹出退出确认窗口,点击确定2、退出成功用户退出要以下动作:1、删除redis中的token2、删除cookie中的token3.2 API认证服务对外提供退出接口。@ApiOperation("退出")public ResponseResult logout();3.3 服务端认证服务提供退出接口。3.3.1 DAO无。3.3.2 Service//从redis中删除令牌public boolean de原创 2021-08-20 15:54:04 · 324 阅读 · 0 评论 -
10-前端显示当前用户-jwt查询接口
2.2.1 需求分析认证服务对外提供jwt查询接口,流程如下:1、客户端携带cookie中的身份令牌请求认证服务获取jwt2、认证服务根据身份令牌从redis中查询jwt令牌并返回给客户端。2.2.2 API在认证模块定义 jwt查询接口:@Api(value = "jwt查询接口",description = "客户端查询jwt令牌内容")public interface AuthControllerApi {@ApiOperation("查询userjwt令牌")public JwtR原创 2021-08-20 15:15:25 · 445 阅读 · 0 评论 -
09-前端显示当前用户-需求分析
2 前端显示当前用户2.1 需求分析用户登录成功在页头显示当前登录的用户名称。数据流程如下图:1、用户请求认证服务,登录成功。2、用户登录成功,认证服务向cookie写入身份令牌,向redis写入user_token(身份令牌及授权jwt授权令牌)3、客户端携带cookie中的身份令牌请求认证服务获取jwt令牌。4、客户端解析jwt令牌,并将解析的用户信息存储到sessionStorage中。jwt令牌中包括了用户的基本信息,客户端解析jwt令牌即可获取用户信息。5、客户端从sessio原创 2021-08-20 11:19:29 · 387 阅读 · 0 评论 -
08-用户认证-认证服务查询数据库-用户登录前端
启动Nginx无痕模式访问http://www.xuecheng.com参考https://blog.csdn.net/minihuabei/article/details/112600255点击登录1.3 用户登录前端1.3.1 需求分析点击用户登录固定跳转到用户中心前端的登录页面,如下:输入账号和密码,登录成功,跳转到首页。用户中心前端(xc-ui-pc-learning工程)提供登录页面,所有子系统连接到此页面。说明:页面有“登录|注册”链接的前端系统有:门户系...原创 2021-08-18 18:12:39 · 110 阅读 · 0 评论 -
06-用户认证-认证服务查询数据库-Bcrypt介绍
1.2.5.3 BCryptPasswordEncoder早期使用md5对密码进行编码,每次算出的md5值都一样,这样非常不安全,Spring Security推荐使用BCryptPasswordEncoder对密码加随机盐,每次的Hash值都不一样,安全性高。1、BCryptPasswordEncoder测试程序如下@Testpublic void testPasswrodEncoder(){String password = "111111";PasswordEncoder passwor原创 2021-08-18 12:01:11 · 290 阅读 · 0 评论 -
05-用户认证-认证服务查询数据库-调用查询用户接口
1.2.5 调用查询用户接口1.2.5.1 创建client认证服务需要远程调用用户中心服务查询用户,在认证服务中创建Feign客户端@FeignClient(value = XcServiceList.XC_SERVICE_UCENTER)public interface UserClient {@GetMapping("/ucenter/getuserext")public XcUserExt getUserext(@RequestParam("username") String usern原创 2021-08-17 18:00:45 · 347 阅读 · 0 评论 -
03-用户认证-认证服务查询数据库-查询用户接口-接口定义
1.2.4 查询用户接口完成用户中心根据账号查询用户信息接口功能。1.2.4.1 Api接口用户中心对外提供如下接口:1、响应数据类型此接口将来被用来查询用户信息及用户权限信息,所以这里定义扩展类型@Data@ToStringpublic class XcUserExt extends XcUser {//权限信息private List<XcMenu> permissions;//企业信息private String companyId;}2、根据账号查询用户信原创 2021-08-17 17:16:19 · 499 阅读 · 0 评论 -
02-用户认证-认证服务查询数据库-需求分析&搭建环境
1.2 认证服务查询数据库1.2.1 需求分析认证服务根据数据库中的用户信息去校验用户的身份,即校验账号和密码是否匹配。认证服务不直接连接数据库,而是通过用户中心服务去查询用户中心数据库。完整的流程图如下:...原创 2021-08-17 16:51:54 · 157 阅读 · 0 评论 -
01-用户认证-用户认证流程分析
1 用户认证1.1 用户认证流程分析用户认证流程如下:业务流程说明如下:1、客户端请求认证服务进行认证。2、认证服务认证通过向浏览器cookie写入token(身份令牌)认证服务请求用户中心查询用户信息。认证服务请求Spring Security申请令牌。认证服务将token(身份令牌)和jwt令牌存储至redis中。认证服务向cookie写入 token(身份令牌)。3、前端携带token请求认证服务获取jwt令牌前端获取到jwt令牌并存储在sessionStorage。前端从j原创 2021-08-17 16:37:04 · 999 阅读 · 0 评论