1.昨天主要是对Jwt的代码里面不熟悉的代码进行了简要的理解,发现其实有些流程并不是普通程序员自己写的,而是自己进行拓展,这些流程是开源程序员写的开发流程;我发现这些代码一般要么是父类的方法实现,要么就是爷爷类的方法代码实现或者是更高辈分的;所以在敲代码觉得这个函数自己不熟悉的话可以自己跳转到相应类来进行比较熟悉;
 
2.理解自己没有用过的代码
  1. 序列化:数据是以二进制在网络中传输,所以我们需要将对象转化为字节类型来传送数据;反序列化是将字节解析为对象
  2. ObjectMapper:Json与对象之间转换的一个工具类
  3. JwtUtil:主要用于生成和校验token;主要有:生成JIT、私钥加密token、公钥解析token、通过token获取用户信息,载荷信息
  4. RsaUtil工具类:根据密文生成公钥和私钥,再从文件中获取公钥和私钥
  5. JsonIgnore注解:序列化时忽略掉一些实体类中的属性
  6. SysRole权限类需要继承GrantedAuthority接口类,并实现getAuthority(),返回权限类的名称就是对应用户权限
  7. SysUser用户类实现UserDetails接口类,并实现getAuthority(),isAccountNonExpirated()、isAccountNonLocked()、isCreadentialExpirated()、isEnable()等方法
  8. 在SysUserMapper类中通过@Results格式省去mybatis文件,进行数据的查询以及字段与属性的对应;通过many=@Many(select = "多的包类方法名")来实现一对多的映射
  9. SysUserDetailsService继承UserDetailsService类,它的实现类需要继承loadUserByUsername()
  10. RequestUtil和ResponseUtil类,RequestUtil工具类主要是通过JsonUtil来读取请求中的输入类来转换输入流为指定类型对象;ResponseUtil工具类主要通过设置响应信息,以及使用JsonUtil类将响应的状态,信息以Result实体类以字符串方式写
  11. 认证过滤器JwtAuthenticationFilter继承UsernamePasswordAuthenticationFilter,但是它是继承AbstractAuthenticationProcessingFilter的用户认证方法attemptAuthentication()、登陆成功后方法successfulAuthentication()、以及登录失败方法unSuccessfulAuthentication()
  12. 认证配置类和验证配置类;daoAuthenticationProvider主要用来解析并认证UsernamePasswordAuthenticationToken的;自定义认证配置类和验证配类
  13. 资源类汇总的验证过滤器继承BasicAuthenticationFilter,实现了它的doFilterInternal(),主要根据header判断是否token是否合法,根据用户信息判断用户验证是否成功
  14. @Secured({"ROLE_ADMIN","ROLE_PRUDUCT"}),使用上面必须在启动类上面添加EnableGlobalMethodSecurity(securedEnable=true)才能使用;作用是上述权限才能访问它的跳转页面
 
3.反思:其实自己可以通过找某方法的父类来了解该方法的使用,再不明白再去搜索,不然光驱查询自己也可能无法接受,再就是很多东西其实都是基础,自己要结合以前的基础去分析现在别个写的流程
 
4.复盘:明天把整个代码重新复盘一遍,巩固所学
 

6.理解Jwt代码的更多相关文章

  1. 想全面理解JWT?一文足矣!

    有篇关于JWT的文章,叫"JWT: The Complete Guide to JSON Web Tokens",写得全面细致.为了自己能更清晰理解并惠及更多人,我把它大致翻译了过 ...

  2. 理解JWT(JSON Web Token)认证

    理解JWT(JSON Web Token)认证 最近想做个小程序,需要用到授权认证流程.以前项目都是用的 OAuth2 认证,但是Sanic 使用OAuth2 不太方便,就想试一下 JWT 的认证方式 ...

  3. 理解JWT(Json Web Token)

    这篇文章写得不错: 理解JWT(JSON Web Token)认证及python实践,这里不做转载,仅摘要如下,有删改,仅做个人学习,感谢原作者. 常用认证机制: 1)HTTP basic Auth: ...

  4. 理解JWT的使用场景和优劣

    理解JWT的使用场景和优劣 淘楼小能手 百家号04-2816:20 经过前面两篇文章<JSON Web Token - 在Web应用间安全地传递信息><八幅漫画理解使用JSON We ...

  5. Beam Search快速理解及代码解析

    目录 Beam Search快速理解及代码解析(上) Beam Search 贪心搜索 Beam Search Beam Search代码解析 准备初始输入 序列扩展 准备输出 总结 Beam Sea ...

  6. 看图理解JWT如何用于单点登录

    单点登录是我比较喜欢的一个技术解决方案,一方面他能够提高产品使用的便利性,另一方面他分离了各个应用都需要的登录服务,对性能以及工作量都有好处.自从上次研究过JWT如何应用于会话管理,加之以前的项目中也 ...

  7. 【.NET Core项目实战-统一认证平台】第十二章 授权篇-深入理解JWT生成及验证流程

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了基于Ids4密码授权模式,从使用场景.原理分析.自定义帐户体系集成完整的介绍了密码授权模式的内容,并最后给出了三个思考问题,本 ...

  8. 理解JWT(JSON Web Token)认证及python实践

    原文:https://segmentfault.com/a/1190000010312468?utm_source=tag-newest 几种常用的认证机制 HTTP Basic Auth HTTP ...

  9. 冷饭新炒:理解JWT的实现原理和基本使用

    前提 这是<冷饭新炒>系列的第五篇文章. 本文会翻炒一个用以产生访问令牌的开源标准JWT,介绍JWT的规范.底层实现原理.基本使用和应用场景. JWT规范 很可惜维基百科上没有搜索到JWT ...

  10. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

随机推荐

  1. XDZX2022学生博客链接

    王桐林博客        https://www.cnblogs.com/xdzxtong/ 邢沐辰博客 https://www.cnblogs.com/xdzxmuchen/ 袁 博博客 https ...

  2. Ai2022中文版(Illustrator 2022)Mac/win v26.4.1

    Adobe Illustrator 2022 Mac/win是设计行业中的矢量图形经典.数以百万计的设计人员和艺术家使用行业标准的矢量图形软件创作各类内容,从炫酷的 Web 和移动图形,到徽标.图标. ...

  3. pytorch卷积模块

    nn.Conv2d() 常用的参数有in_channels,out_channels,kernel_size,stride,padding; 除此之外还有参数dilation,groups,bias ...

  4. POJ3723 Conscription 题解

    start: 2021-08-04 16:56:50 题目链接: http://poj.org/problem?id=3723 题目内容: Description Windy has a countr ...

  5. pandas(随时更新)

    pandas处理一个表中的一列数据被另一个表中的另一列数据替换: df1=pd.DataFrame({'id':[1,2,3],'name':['Andy1','Jacky1','Bruce1']}) ...

  6. Spring 笔记三 事务

    一.环境搭建 [1]导包 [2]编写配置文件 1. 配置扫描注解 2. 引入外部资源文件 3. 配置数据源 4. 配置JdbcTemplate 操作数据库 5. 配置声明式事务 5.1 Spring ...

  7. 生成uui

    1.安装uuid包 go get github.com/google/uuid 2.目录结构 3.uuid.go package uuid import ( "github.com/goog ...

  8. A better jump —— 优化游戏中的跳跃

    之前一提起角色的跳跃,想当然的想法就是:给角色一个向上的初速,然后由Unity的物理系统接管就好了嘛,这样忽略空气摩擦的影响,根据重力加速度,角色向上跳到最高点的时间和由最高点落下的时间相等,不是很合 ...

  9. Navicat Premium 16 永久破解激活

    Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL.SQLite.Oracle 及 PostgreSQL 资料库,让管理不 ...

  10. 问道Golang,6月龄必知必会(二)

    在我看来,golnag有许多反直观的设计,而且这些设计通常不能自圆其说,导致gohper一而再再而三的调入陷阱. 网上也有很多gohper总结了一些笔记,我再提炼精简一下,挂在脑图树上便于记忆. 值类 ...