首页 > 编程语言 >黑马程序-实战篇

黑马程序-实战篇

时间:2024-05-10 09:46:58浏览次数:18  
标签:令牌 自定义 JWT boot 程序 实战篇 校验 注解 黑马

1、Spring Validation

Spring提供的一个参数校验框架,使用预定义的注解完成参数校验

步骤:

1、引入Spring Validation 起步依赖

<!--        validation依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

2、在参数前面添加@Pattern注解

3、在Controller类撒花姑娘添加@Validated注解

2、登录认证(防止用网址直接跳过登录界面)

jwt令牌

全程:JSON Web Token

组成:第一部分:Header(头) 记录令牌类型,签名算法等

​ 第二部分:Payload(有效载荷) 携带一些自定义信息、默认信息等,但不能携带私密数据,如密码

​ 第三部分: Signature(签名),防止Token被篡改,确保安全性。

注意事项:

  • JWT校验时使用的签名秘钥,必须和生成JWT令牌时使用的秘钥是配套的
  • 如果JWT令牌解析校验时报错,则说明JWT令牌被篡改或失效了。

3、第三方服务-通用思路

3.1、准备工作

注册登录,

充值,

开通对象存储服务(OSS),

创建bucket,

获取AccessKey(秘钥)

参照官方SDK编写入门程序,案例集成OSS

3.2、参照官方SDK编写入门程序

SDK:软件开发工具包,包括辅助软件开发的依赖(jar包)、代码示例等,都可以叫做SDK

3.3、集成使用

4、Redis

4.1、SpringBoot集成redis

4.2、令牌主动失效机制

  • 登陆成功后,给浏览器响应令牌的同时,把该令牌存储到redis中
  • LoginInterceptor拦截器中,需要验证浏览器携带的令牌,并同时需要获取到redis中存储的与之相同的令牌

5、SpringBoot项目部署

开发好的项目,在自己电脑上关掉后,仍然可以再别人的电脑上运行

打包生成jar包,导入打包插件:

适用于springboot2

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

适用于springboot3

<plugin>
 				<groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>3.1.3</version>

</plugin>

先停止IDEA中的项目运行,不然他会占端口

6、多环境配置(开发、测试、生产)

7、前端项目js导入导出

HTML:负责网页的结构(标签:form表单 / table表格 / a /div/span)

CSS:负责网页的表现(样式:color/font/background/width/height)

JavaScript:负责网页的行为(交互效果)

JS提供的导入导出机制,可以实现按需导入

问题

SpringBoot2和3的区别

SpringBoot2,在mapper层需要些@Param

,但是springboot3不需要加@param

全局异常处理器

在全局异常处理器中处理参数校验失败的异常

@NotNull和@NotEmpty

@NotNull:你不能不传

@NotEmpty :你必须传,如果是字符串,不能为空

分组校验

参数校验

自定义校验

已有的注解不能满足所有的校验需求,特殊的情况需要自定义校验(自定义校验注解)

  1. 自定义注解State
  2. 自定义校验数据的类StateValidation实现ConstraintValidator接口
  3. 在需要校验的地方使用自定义注解

标签:令牌,自定义,JWT,boot,程序,实战篇,校验,注解,黑马
From: https://www.cnblogs.com/ztyniubi/p/18183578

相关文章

  • LLM生态下爬虫程序的现状与未来
    最近出现一批与LLM有关的新的爬虫框架,一类是为LLM提供内容抓取解析的,比如JinaReader和FireCrawl,可以将抓取的网页解析为markdown这样的对LLM友好的内容,例如markdown,这类本质上还是传统的爬虫解决方案。还有一类是通过LLM+agent工作流方式来构建的下一代爬虫程序,比如Skyvern、......
  • FastUI:快速构建Web应用程序界面
    简介FastUI是一种全新的构建Web应用程序用户界面的方式,它是由声明式的Python代码定义的。它旨在为Python开发人员和前端开发人员提供一种简单而强大的工具,以便他们能够更高效地构建响应式的Web应用程序界面,而无需处理繁杂的JavaScript代码或底层的技术细节。FastUI的优势•......
  • 微信小程序使用微信云托管添加自定义域名并转发到pexels.com
    背景:我要在小程序上显示pexels.com上的图片,然后我得先把pexels.com的域名添加到小程序的request合法域名中,但是pexels.com是国外的,在国内没有备案所以添加不了。解决方案就是:用一个已经备案好的域名进行转发,转发的服务器我选择的是微信云托管,备案好的域名还需要ssl,没有的话本文会......
  • 微信小程序导出Excel文件并转发给好友
    需求:小程序的列表页面增加导出功能,点击“批量导出”按钮,则自动生成导出文件,然后自动调起微信好友列表,然后可以将文件发送给微信好友解决方案:由于列表数据是分页加载,所以导出直接由后端同学进行生成并返回url,则我们前端同学只负责下载wx.downloadFile并转发wx.shareFileMessage......
  • Windows备份和恢复驱动程序详解
    在进行系统重装后,驱动程序的重新安装通常是一项繁琐的任务。为了简化这一过程并降低数据丢失的风险,建议对Windows驱动程序进行备份。以下是一个指南,用于备份和恢复驱动程序。备份驱动程序启动PowerShell:首先,点击“开始”菜单,在搜索框中输入“WindowsPowerShell”,并以管理员权......
  • c语言程序设计——实验报告七
    实验项目名称:实验7数组的基本使用实验项目类型:验证性实验日期:2024年4月22日一、实验目的1.熟练掌握数组的定义格式和数组元素的表示方法2.熟悉数组的初始化方法和赋值方法3.掌握字符数组存放字符串的方法和字符串函数的使用4.熟悉数组元素的操作,特别是输入与输出操作5.......
  • 设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每
      设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日星期xtt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。/********************************************************************* filename: getime.c* author :......
  • Windows程序读取不了中文路径问题
    问题描述今天调试发现win32接口GetFileAttributesW居然不支持中文路径,于是寻找解决方案,找了半天,尝试用boost的fileystem库发现能用,而且boost能跨平台!不支持中文win32接口获取文件属性,当传入参数带有中文字符时,它获取的属性就会异常DWORDGetFileAttributesW([in]LPCWSTRlpFi......
  • 编程:java 发送email程序:通用版本:借鉴“蚂蚁小哥 <[email protected]>”的文章
     1packagecom.alibaba.otter.canal.adapter.launcher.loader;23importjava.text.SimpleDateFormat;4importjava.util.*;5importjavax.mail.*;6importjavax.mail.internet.*;78publicclassJavaxJavaMailClient{910private......
  • MediatR是一个在.NET应用程序中实现“中介者模式”的开源库
    MediatR是一个在.NET应用程序中实现“中介者模式”的开源库。该库通过一种进程内消息传递机制(无其他外部依赖),进行请求/响应、命令、查询、通知和事件的消息传递,并通过泛型来支持消息的智能调度。中介者模式是一种行为设计模式,它允许对象之间通过一个中介者对象进行交互,而不是直接......