孤尽训练营打卡日记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);

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值