Jwt理论-注解集合-验证数据

JWT
1.jwt(JSON Web Token)是一个开放的标准,用于在各方之间以JSON对象安全地传输信息。这些信息通过数字签名进行验证和授权。
2.JWT请求流程
(1)用户使用浏览器(客户端)发送账号和密码。
(2)服务器使用私钥创建一个JWT.
(3)服务器返回该JWT给浏览器
(4)浏览器将该JWT串在请求头中向服务器发送请求
(5)服务器验证该JWT
(6)根据授权规则返回资源给浏览器
通过前3个步骤获取了JWT之后,在JWT有效期内,以后都不需要进行前3个步骤的操作,直接进行第4-6步的请求资源即可。
3.JWT的组成
header:通过base64编码生成的字符串,header中存放的内容说明编码对象是一个jwt。
payload(载荷):主要包含claim,claim是一些实体(通常指用户)的状态和额外的元数据。
signature(签名):签名需要使用编码后的header和payload及一个密钥,使用header中指定签名算法进行签名。流程如下:
(1)将header和claim分别使用base64进行编码,生成字符串header和payload。
(2)将header和payload以header.payload的格式组合在一起,形成一个字符串。
(3)使用上面定义好的加密算法和一个存放在服务器上用于进行验证的密匙来对这个字符串进行加密,形成一个新的字符串,这个字符串就是signature。

使用案例:用JWT技术为spring boot的API增加认证和授权保护。

注解
idea的部分功能:
1.智能提示代码:ctrl+space
2.自动提示参数:ctrl+p
3.实现自动转义
4.自定义高复用代码块:sout,pvsm,soutm,fori,ifn
5.自定义live Template
6.设置注释信息

注解:用来定义一个类、属性或一些方法,以便程序能被编译处理。相当于一个说明文件,告诉应用程序某个被注解的类或属性是什么,要怎么处理。注解可以用于标注包,类,方法和变量等。

spring boot的常用注解。
@Repository:用于标注数据库访问层
@Transactional:用于处理事务。回滚
@Qualifier:"合格者“,用于标注哪一个实现类才是需要注入的。常和@Autowired一起使用

使用在方法上的主要注解
@RequestBody:使用在方法参数前,常用来处理application/json、application/xml等content-type类型的数据,意味着http消息是json/xml格式,需将其转化为指定类型参数。
@PathVariable:使用在方法参数前,将url的参数映射到方法参数上。
@ResponseBody:使用在方法上,作用是通过转换器将控制器中方法返回的对象转换为指定的格式,然后写入Response对象的body区,常用来返回JSON/XML格式的数据。

验证数据
内置的hibernate-validator
@NotBlank
@Email
@Length
@NotEmpty
。。。。

你可能感兴趣的:(spring,boot,java,spring)