自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 资源 (1)
  • 收藏
  • 关注

原创 SSM项目————整合微信支付

一、准备页面1、第一个页面,购票页面2、第二个页面,详情支付页面3、第三个页面,支付成功跳转页面二、准备二维码(测试一下)三、准备微信参数、环境、HttpClient工具类、雪花算法工具类。四、开始支付功能编码(下单)五、开始支付功能编码(查询订单状态)————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~我们这里只看支付,其他跟支付无关的东西不看一、准备页面主要有三个页面1、第一个页面,购票页面2、第二个页面,详情支付页面紫色的三个是跟我们支付有关的3、第三个页.

2022-02-22 03:58:08 5384 19

原创 java——SSM项目部署上线——(阿里云服务器ECS + 云数据库RDS MySQL)(宝塔)

SSM项目部署上线——(阿里云服务器ECS + 云数据库RDS MySQL) 一、首先购买,并配置好一个云数据库1、购买云数据库2、购买完成等待阿里云配置创建3、设置白名单4、创建数据库账号5、申请外网链接6、登录数据库。创建数据库。二、本地项目测试云数据库连接三、项目打包(war包)1、通过idea自身进行打包2、通过maven进行打包四、阿里云ECS服务器购买、配置一、首先购买,并配置好一个云数据库1、购买云数据库进入阿里云官网,选择云数据库购买,选择区域位置,最好选择离自己最近的,其他保持默认即

2022-02-03 04:45:36 4883 3

原创 如何使用java每天定时自动发送邮件(可带附件),每天给女朋友QQ发一封暖心邮件吧

开始之前需要做一些准备工作1.导入依赖的jar包 —> activation.jar 和 mail.jar2.在QQ邮箱中设置开启获取第三方登录授权码打开QQ邮箱,如下图,跟着步骤走* 下拉选择IMAP/SMTP接着手机验证后得到授权码,记着后面代码要使用准备工作完成就可以开始编码了说一下实现功能思路:首先需要一个监听器对发邮件进行监听,生命周期伴随服务器,那么就需要...

2019-07-29 03:52:26 5506 15

原创 Shiro——02,thymeleaf

发起login请求,会被我们写的AccountController捕获到直接返回url。return之后结合视图解析器,就会在templates里面找我们的html。一个是login登录页面,一个是index主页,主页上面有三个超链接,分别对应另外三个页面。传过来一个路径,就把这个路径映射成到对应的页面。

2024-04-09 18:18:07 291

原创 Shiro——01,环境搭建

官网:http://shiro.apache.org/是一款主流的 Java 安全框架,不依赖任何容器,可以运行在 Java SE和 Java EE 项目中,它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。Shiro 就是用来解决安全管理的系统化框架。

2024-04-09 18:12:28 613

原创 Spring Security——13,认证成功&&失败&&注销成功处理器

测试一下:输入正确的账号密码,登录成功返回认证成功测试一下:输入错误的账号密码,登录失败返回认证失败测试一下:登录成功之后,访问注销的接口。

2024-04-08 21:06:54 825

原创 Spring Security——12,CSRF&&其他权限控制

我们可以发现CSRF攻击依靠的是cookie中所携带的认证信息。但是在前后端分离的项目中我们的认证信息其实是token,而token并不是存储中cookie中,并且需要前端代码去把token设置到请求头中才可以,所以CSRF攻击也就不用担心了。后端会生成一个csrf_token,前端发起请求的时候需要携带这个csrf_token,后端会有过滤器进行校验,如果没有携带或者是伪造的就不允许访问。CSRF是指跨站请求伪造(Cross-site request forgery),是web常见的攻击之一。

2024-04-08 18:50:53 500

原创 Spring Security——11,自定义权限校验方法

一键三连有没有捏~~我们也可以定义自己的权限校验方法,在@PreAuthorize注解中使用我们的方法。自定义一个权限检验方法:在SPEL表达式中使用 @ex相当于获取容器中bean的名字未ex的对象。然后再调用这个对象的hasAuthority方法,权限方法换成自己的测试一下,也是没有问题的。

2024-04-07 22:14:23 262

原创 Spring Security——10,其他权限校验方法

hasAuthority方法实际是执行到了SecurityExpressionRoot的hasAuthority,大家只要断点调试既可知道它内部的校验原理。这里我们先不急着去介绍这些方法,我们先去理解hasAuthority的原理,然后再去学习其他方法你就更。hasAnyAuthority方法可以传入多个权限,只有用户有其中任意一个权限都可以访问对应资源。并且我们也可以选择定义校验方法,实现我们自己的校验逻辑。hasRole要求有对应的角色才可以访问,但是它内部会把我们传入的参数拼接上。

2024-04-07 22:08:08 457

原创 Spring Security——09,解决跨域

因为它不是浏览器,所以我们要找一个前端的项目,就随便找了一个vue工程。由于我们的资源都会收到SpringSecurity的保护,所以想要跨域访问还要让SpringSecurity运行跨域访问。修改一下登录页面,认证登录成功之后,把返回的token接收,存入localStorage。前后端分离项目,前端项目和后端项目一般都不是同源的,所以肯定会存在跨域请求的问题。然后看一下,响应,都没有问题,OK,这个账号是有这个权限的。然后测试一下,登录成功,解决跨域请求,拿到token。填入一个正确的密码,认证成功。

2024-04-07 22:01:27 1990

原创 Spring Security——06,授权_封装权限信息

我们前面在写UserDetailsServiceImpl的时候说过,在查询出用户后还要获取对应的权限信息,封装到UserDetails中返回。实际上项目中用的都是基于注解的形式配置方式,基于配置方式的主要是用来配置静态资源,而前后端分离,就没有什么静态资源了,所以用的都是注解。在security中,它去获取权限信息的时候,是调用UserDetails接口中的getAuthorities方法。所以我们还需要在后台进行用户权限的判断,判断当前用户是否有相应的权限,必须具有所需权限才能进行相应的操作。

2024-04-07 21:45:21 1007

原创 Spring Security——08,自定义失败处理

一、自定义实现类1.1 实现AccessDeniedHandler1.2 实现AuthenticationEntryPoint二、配置SpringSecurity三、测试3.1 认证失败3.2 权限不足一键三连有没有捏~~我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。要实现这个功能我们需要知道SpringSecurity的异常处理机制。

2024-04-07 21:34:15 581 2

原创 Spring Security——07,授权_从数据库查询权限信息

RBAC权限模型(Role-Based Access Control)即:基于角色的权限控制。有一个插件,插件的名称叫做MybatisX,它可以在我们写完MenuMapper后,帮我们生产对应的XML文件,还有方法所对应的标签。因为redis存放的是旧的,不是最新的。便于理解,前面的权限都是写死的,从这里开始是查询数据库的。登录成功之后,访问hello接口,返回的是403。sys_role_menu 角色权限关联表。sys_user_role用户角色表。sys_role 角色表。sys_user用户表。

2024-04-07 21:32:22 539

原创 Spring Security——05,退出登录

我们只需要定义一个登陆接口,然后获取SecurityContextHolder中的认证信息,删除redis中对应的数据即可。1、LoginController 添加一个方法 logout() 退出登录。因为redis已经删除了,所以去找的时候,就会为null,返回用户未登录。退出成功了之后,拿之前登录成功的老token,访问一下hello接口。先登录,登录了之后,拿到返回的token去访问退出接口。测试退出了,老token是否还可以访问hello接口。然后看一下后台报的是什么错误。

2024-04-04 23:19:09 576

原创 Spring Security——04,认证_校验

完成过滤器之后,我们要去指定一下过滤器的位置,在哪里进行过滤,我们把它放在UsernamePasswordAuthenticationFilter之前的位置。我们想让他访问成功,就把之前登录成功的token拿过来,作为请求头,就可以了。项目重新启动了之后,老token就不能登录了,必须重新登录,要新的token。然后,一直放行,放行到后面,肯定是一个认证失败的结果。现在,我们的登录接口,请求头是没有token的。老token登录报错了,报的是语法错误,乱码了。看一下,我们的idea,已经到断点这里了。

2024-04-04 23:18:11 273

原创 Spring Security——03,认证_登录

当我们输入密码1234后,Spring Security会根据存储的密码密文解析出加密算法和盐值,然后它会根据这个加密算法和盐值将你输入的密码加密,最后才会将生成的密码密文与存储的密码密文进行比较。每次加密的随机盐会被保存在一个hash中的,每次加密时候,密文中都包含了随机盐的基本信息,所以他能根据这个基本信息找到保存在hash上的那个随机盐。所以是一一对应的关系。它会调用我们之前自定义的UserDetailsServiceimpl里面的方法进行一个校验,会根据我们传过去的用户名去查询数据库,然后再返回。

2024-04-02 21:15:55 1664

原创 Spring Security——02,认证流程分析、解决

​ 第一次登录之后,生产一个token,返回到客户端,还有用userid作为key,用户信息作为value存入redis中,然后呢,下一次再进行登录,我们解析前端传过来的token,得到userid,就不用每次一都访问我们的服务器数据库,我们可以查询redis,不查询数据库。SpringSecurity的原理其实就是一个过滤器链,内部包含了提供各种功能的过滤器。Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。**:**负责权限校验的过滤器。入门案例中的过滤器。

2024-04-02 21:15:18 385

原创 Spring Security——01,神速入门

是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。一般来说中大型的项目都是使用来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。一般Web应用的需要进行认证和授权。认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户授权:经过认证后判断当前用户是否有权限进行某个操作而认证和授权也是SpringSecurity作为安全框架的核心功能。

2024-04-01 18:26:12 413

原创 JTW——03,springboot整合JWT

Override//获取请求头中的令牌try {map.put("msg", "签名不一致");map.put("msg", "令牌过期");map.put("msg", "算法不匹配");map.put("msg", "失效的payload");map.put("msg", "token无效");//响应到前台: 将map转为json。

2024-04-01 18:02:41 391

原创 JTW——02,第一个jwt程序

【代码】JTW——02,第一个jwt程序。

2024-03-27 18:36:17 206

原创 JTW——01,简述、对比

https://blog.csdn.net/wangxinxinsj/article/details/132746876

2024-03-27 18:29:42 125

原创 Mybatis-Plus——09,代码自动生成器

报错了,缺少依赖,Velocity是一个基于Java的模板引擎,其提供了一个Context容器,在java代码里面我们可以往容器中存值,然后在vm文件中使用特定的语法获取,这是velocity基本的用法,其与jsp、freemarker并称为三大视图展现技术。报错的原因是缺少依赖 @ApiModel 跟 @ApiModelProperty 都是 swagger2 的注解。报错的原因是,自动生成的代码,mapper包,我们并没有扫描。导入依赖之后,再运行一次,没有报错,自动生成了代码。

2024-03-26 20:56:56 318

原创 Mybatis-Plus——08,CRUD删

看一下数据,数据并没有被真正的删除,只是deleted变成了1。2.6、再次测试查询被删除的用户,发现查询为空。2.1、在数据表中增加一个deleted字段。2.4、配置文件,配置逻辑删除。2.2、实体类中添加对应属性。deleted全部设置为0。2.3、配置逻辑删除插件。2.5、测试一下删除。

2024-03-26 20:56:25 568

原创 Mybatis-Plus——07,性能分析插件

MybatisPlus也提供了性能分析插件,如果超过这个时间就停止运行!性能分析拦截器作用:用于输出每条sql语句及其执行时间。再运行测试一下,没有报错,11毫秒。超过5毫秒了,查询失败。把时间设置成100毫秒。

2024-03-07 18:36:08 497

原创 Mybatis-Plus——06,CRUD查

看一下数据库的数据,是否匹配。查询第2页,页面大小为5。

2024-03-07 18:33:30 757

原创 Mybatis-Plus——05,乐观锁(新注解)

version都是1。

2024-03-06 19:50:58 563

原创 Mybatis-Plus——04,自动填充时间(新注解)

创建时间、更改时间!这些操作一般都是自动化完成,我们不希望手动更新,我们让程序自动完成。有时候,我们想第一次插入数据的时候,也算修改数据,那么这个怎么做呢?自定义实现类 MyMetaObjectHandler。再运行一次,首次插入数据的时候,修改时间也有了。

2024-03-05 22:13:11 728

原创 linux安装mysql5.7

下载完成了之后,我们可以解压出来。我们发现,它有10个包,但真正对我们有用的,只有6个包名作用是否安装clientMySQL客户端是common服务端和客户端常用库文件是devel客户端开发用的头文件及库是embedded嵌入式版本否兼容老版本嵌入式的共享库否嵌入式版本的头文件与库否libs数据库客户端共享库是兼容老版本的共享库是test数据库服务端与相关工具是clientMySQL测试套件否。

2024-03-04 19:37:56 1165

原创 Mybatis-Plus——03,CRUD改

【代码】Mybatis-Plus——03,CRUD改。

2023-12-21 19:48:03 427

原创 Mybatis-Plus——02配置SQL日志,CRUD增(新注解)

数据库插入的id的默认值为:全局的唯—id。在运行一下测试方法,sql记录就出来了。直接插入一行数据,id会帮我们自动生成。首先数据库id设置成自动增加。在上一条记录的基础上自增1。实体类id添加type。

2023-12-21 19:45:37 563

原创 Mybatis-Plus——01搭建环境、快速入门(新注解、依赖)

【代码】Mybatis-Plus——01搭建环境、快速入门(新注解、依赖)

2023-12-17 01:45:00 810

原创 springboot——定时任务、异步任务

这里需要注意的是,这个异步方法如果在本类中使用 this 调用,则不能达到异步的目的。一个是1秒、5秒、10秒、15秒。

2023-12-17 01:33:02 897

原创 Redis——02,redis-benchmark 性能测试

在bin目录下,有一个redis-benchmark 工具,是用来测试性能的。

2023-12-16 00:55:12 425

原创 Redis——01,服务器购买、安装Redis

第二步:进入到bin目录下,./redis-server redis.conf 启动redis服务端(后台启动)第三步:查询是否启动成功 ps -ef | grep redis 看一下redis的进程是否开启。需要注意的是,我们的 Redis 6.2 版本,是需要make的,直接解压就能用。第一步:进入到Redis目录,将etc目录下的配置文件复制到,bin目录下。首先,把下载的Redis放在我们的linux服务器上。进入到文件夹,看看有没有上传的文件,是有的。

2023-12-15 20:05:56 594

原创 idea__SpringBoot微服务12——整合Mybatis框架(新依赖)(新注解)

整合Mybatis框架一、创建一个新的项目,导入mybatis依赖,lombok依赖。二、idea内置数据库管理工具连接数据库。三、编写实体类。四、编写Mapper接口。(新注解)五、编写Mapper.XML。六、编写数据库连接文件,扫描包。七、编写Controller,这里只写一个方法,其他三个不写。八、主启动类。(新注解)九、启动,看一下效果————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~新注解:@Mapper这个注解表示了这是一个mybatis 的mapper类;D

2023-12-15 20:02:19 431

原创 idea__SpringBoot微服务11——整合Druid数据源(新依赖)(新注解)

整合JDBC一、导入依赖二、配置Druid————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~接着 第10的新注解:@ConfigurationProperties@ConfigurationProperties(prefix = “spring.datasource”):作用就是将 全局配置文件中前缀为 spring.datasource的属性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名参数中新的依赖<!--dr

2023-12-13 19:54:42 1286

原创 idea__SpringBoot微服务10——整合JDBC(新依赖)

整合JDBC一、创建一个项目二、idea配置连接mysql三、创建yaml数据库连接配置文件四、测试一下,没有问题五、增删改查————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~新的依赖<!--jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin

2023-12-12 22:03:30 1166

原创 idea__SpringBoot微服务09——员工管理系统,(Springboot解决乱码),thymeleaf语法,404页面。

员工管理系统一、首页实现(注意的点)二、国际化三、乱码解决四、登录功能实现(注意的点)五、登录拦截器(注意的点)六、展示员工列表(注意的点)1、前端页面抽取 th:fragment2、前端页面抽取进阶 th:replace3、前端页面侧边栏选择高亮 active传递参数判断4、日期七、添加员工(注意的点)1、时间格式问题2、参数问题3、循环遍历 th:each 设置值 th:value八、修改员工(注意的点)1、form表单action传值2、+ 号拼接参数,a标签也是可以提交的3、th:ch

2023-12-11 22:50:17 1057

原创 idea__SpringBoot微服务08——自定义视图解析器,扩展SpringMVC(新注解)

自定义视图解析器,扩展SpringMVC一、自定义视图解析器二、扩展SpringMVC(新注解)新注解:@EnableWebMvc 全面接管SpringMVC一、自定义视图解析器1、自己写一个视图解析,把它注到bean上2、怎么看我们自己写的视图解析器有没有起作用呢?我们给 DispatcherServlet 中的 doDispatch方法 加个断点进行调试一下,因为所有的请求都会走到这个方法中3、我们启动我们的项目,然后随便访问一个页面,看一下Debug信息;找到this找到视图解

2023-12-11 01:05:20 602

原创 idea__SpringBoot微服务07——Thymeleaf

Thymeleaf一、Thymeleaf入门二、Thymeleaf语法————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~新依赖:Thymeleaf的<!--thymeleaf--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifact

2023-12-10 00:08:49 608

bandicam——录屏软件

录屏软件(含教程)免费,超级好用,可以自定义设置,画面清晰,简单易操作,不掉帧,不卡顿。

2022-10-07

基于java web的网上书城项目.rar

适合刚刚学完javaEE的人群,学生党,毕业设计

2021-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除