JWT基本概念 JWT,即 JSON Web Tokens(RFC 7519),是一个广泛用于验证 REST APIs 的标准.虽说是一个新兴技术,但它却得以迅速流行. JWT的验证过程是: 前端(客户端)首先发送一些凭证来登录(我们编写的是 web 应用,所以这里使用用户名和密码来做验证). 后端(服务端)这里指Spring应用校验这些凭证,如果校验通过则生成并返回一个 JWT. 客户端需要在请求头的Authorization字段中以 "Bearer TOKEN" 的形式携带获取到的…
本章介绍一下常用的认证框架Shiro结合springboot以及集合jwt快速带您开发完成一个认证框架机制. Maven配置依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency> Shiro 配置类 @Confi…
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三.主要页面及接口实现 SpringSecurity权限管理系统实战-四.整合SpringSecurity(上) SpringSecurity权限管理系统实战-五.整合SpringSecurity(下) SpringSecurity权限管理系统实战-六.SpringSecurity整合jwt Spri…
项目集成Spring Security(一) 在上一篇基础上继续集成 JWT ,实现用户身份验证. 前言 前后端分离项目中,如果直接把 API 接口对外开放,我们知道这样风险是很大的,所以在上一篇中我们引入了 Spring Security ,但是我们在登陆后缺少了请求凭证部分. 什么是JWT? JWT是 Json Web Token 的缩写.它是基于 RFC 7519 标准定义的一种可以安全传输的 小巧 和 自包含 的JSON对象.由于数据是使用数字签名的,所以是可信任的和安全的.JWT可以使…
一.前言 最近负责支付宝小程序后端项目设计,这里主要分享一下用户会话.接口鉴权的设计.参考过微信小程序后端的设计,会话需要依靠redis.相关的开发人员和我说依靠Redis并不是很靠谱,redis在业务高峰期不稳定,容易出现问题,总会出现用户会话丢失.超时的问题.之前听过JWT相关的设计,决定尝试一下. 二.什么是JWT JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间作为JSON对象安全地传输信息.此信息可以通过数字签名进行…
大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全面发展,才能在这个日趋激烈的社会,在未来有更好的发展空间. 话不多说,本期为大家介绍的是关于一些程序员必备技能介绍,相信掌握这些编码内外的技能,我们会朝优秀软件开发人员更近一步. 下面就来看看我总结的这些技能,准备好进收藏夹(吃灰)了嘛? 编码之内 代码规范 代码规范化带给我们的第一个好处就是看着很…
序列化和反序列化 序列化就是指把对象转换为字节码: 对象传递和保存时,保证对象的完整性和可传递性.把对象转换为有字节码,以便在网络上传输或保存在本地文件中: 反序列化就是指把字节码恢复为对象: 根据字节流中保存的对象状态及描述信息,通过反序列化重建对象: 一般情况下要求实现Serializable接口,该接口中没有定义任何成员,只是起到标记对象是否可以被序列化的作用. 对象在进行序列化和反序列化的时候,必须实现Serializable接口,但并不强制声明唯一的serialVersionUID,是…
如今,越来越多的公司开始 Docker 了,「三分之二的公司在尝试了 Docker 后最终使用了它」,也就是说 Docker 的转化率达到了 67%,同时转化时长也控制在 60 天内. 既然 Docker 这么火,Docker 监控是不是也该提上日程?或许具体问题要具体分析,但是似乎大家都在寻找新一代 Docker 监控的工具. 本次技术公开课将会给大家带来全方位的 Docker 实践,从监控之道到监控方案,让你了解到 Docker 实时性能状况,精准定位到性能薄弱的环节,从而优化应用,让监控之…
这次,继续聊聊「虚拟化技术」. 根据上回的介绍,虚拟化技术可以使「计算机的台数和运行的OS的个数的比例不再是1:1」.这回介绍一下如何使用这个技术. 使用方法之一,「一台计算机上运行多个OS」.从个人用户的观点来看,这是最贴近个人用户的使用方法. 在已有的OS上通过虚拟化机安装Linux,然后在虚拟机上学习Linux的人有很多. 还有一种使用方法,实际上这种使用方法一直受到极大的关注,这种使用方法就是「将多台计算机构成一个系统」. 这种方法将多台计算机的计算能力汇集到一个系统中,可以大大提供系统…
这次聊聊「虚拟化技术」. 虚拟化技术,有时简称为「虚拟化」,最近经常听人说它.但是却不太清楚它的意思.到底虚拟了什么东西?本来是用来干什么的? 有名的虚拟化软件要数 VMware 和 VirtualBox了.这些软件简单来说的话,就是在已有的OS上虚拟一个计算机出来,然后在这台虚拟计算机上安装别的OS. 即,在一台计算机上可以运行多个OS. 虚拟化技术可以提供上述的功能,但是虚拟化技术并不仅仅是「一台计算机上运行多个OS」.也能够「多台计算机上运行一个OS」. 即,通过虚拟化技术,「计算机的台数…