微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

孤尽训练营打卡日记day28--第四周总结

前言

        光阴似箭,日月如梭。转眼已经过去了一个月,孤尽训练营第四周也已经结束,今天我们一起来对这一周的内容做个简单回顾。

第一次课 单元测试和系统安全规约

什么是单元测试?

        对软件组成单元进行的测试,其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元:模块,又称模块测试

为什么要单元测试?

  • 提高软件质量
  • 促进代码优化
  • 提升研发效率

怎么单元测试?

        借助常用的单元测试框架,如 Junit、SpringTest等

系统安全规约

为什么需要注意系统安全?

        一张照片就有可能暴露你的信息,客户的信息应该保密,系统权限应该严格控制

怎么做?

  • 校验权限,防止越权行为,包含数据权限和操作权限
  • 敏感信息数据脱敏,
  • 防止sql注入

第二次课 用户系统实现

什么是JWT?

         Json web toke(JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC7519)定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名

为什么使用JWT?

        传统token认证,用户每次请求资源服务,资源服务都需要携带令牌访问认证服务去校验令牌的合法性,并根据令牌获取用户的相关信息,性能低下,利用公钥私钥完成对令牌的加密,解决性能问题。如果加密解密成功,则表示令牌合法,如果加密解密失败,则令牌无效,不合法。

怎么做?

  • 私钥颁发令牌
  • 公钥验证令牌

第三次课 Redis分布式锁

是什么?

        借助 setnx 和 expire 两个redis命令完成 

为什么?

        传统的并发加锁无法处理多实例的场景

怎么做?

利用Jedis 实现分布式锁,

        Jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。'

加锁

jedis.set = set key value [Ex seconds][Px milliseconds] [NX|XX]

解锁

jedis.del(key)

redisson分布式锁

         是基于netty的redis 客户端。不但能操作原生的Redis 数据结构,还能为使用者提供了一系列具有分布式特性的常用工具类,实现了分布式锁。

RLock disLock = client.getLock("disLOCK");
disLock.lock();  // 认 30s
=======================
disLock.tryLock(2000, 150000, TimeUnit.MILLISECONDS);

不登高山,不知天之高也,不临深溪,不知地之厚也。   --荀子

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐