自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 六、Spring Security认证和授权-实现自定义短信验证码登陆功能

一、图片验证码验证流程回顾上期已经实现了图片验证码的功能,我们来回顾一下大概流程:1、 客户端生成一个唯一标识,然后发起图片验证码请求,请求路径中携带这个唯一标识,例如:http://localhost:8066/auth/code/image/039988e0-1994-11eb-8a54-abdddf75aa452、 服务端接收到获取验证码请求,读取请求路径中的唯一标识(例如:039988e0-1994-11eb-8a54-abdddf75aa45);生成4位随机数作为验证码,合成验证码图片(创建

2020-10-29 16:41:33 1133 1

原创 五、Spring Security认证和授权-实现图片验证码功能

一、图形验证码的作用图形验证码是验证码的一种。验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。

2020-10-26 18:09:50 774 1

原创 四、Spring Security认证和授权-动态授权解决方案

上面两期已经学习了认证和授权的相关知识并且对源码进行了解析,相信这些知识点应付简单系统权限控制已经足够,但是如果想要实现复杂的权限控制,就需要自己进自定义开发了。今天我们来学习一下如何基于Spring Security,实时从数据库里查询用户权限进行权限校验,实现动态权限控制。一、RBAC简介动态权限开发以前,我们必须要有一套明确的权限系统。下面我们基于RBAC来讲解具体实现流程。RBAC(role-based access control),基于角色的权限控制系统,是指对于不同角色的用户,拥有不同的

2020-10-06 21:54:54 1732

原创 三、Spring Security认证和授权-授权流程及源码解析

上期我们学习了基于UsernamePasswordAuthenticationFilter的表单认证,接下来我们将对Spring Security授权相关知识点进行介绍并进行源码级解析。认证和授权是两个密不可分的好基友,只认证不授权,系统将不知道用户有哪些权限,能进行哪些操作。就像是一个公司只设置了门卫,只要是本公司职员就能进入(认证过程),但是没有明确的规章制度和上下级关系,进入公司以后具体有哪些权利和义务没人知道(授权),将导致公司陷入混乱无法运转。一、授权表达式Spring Security允许我

2020-10-05 23:02:29 1720

原创 二、Spring Security认证和授权-基于表单的认证流程及源码解析

学完上期核心原理解析,我们已经知道了Spring Security 是由一系列的过滤器组成,通过拦截指定URL实现用户登录的操作。今天我们基于Spring Security 自带的UsernamePasswordAuthenticationFilter过滤器进行表单验证的开发。一、表单验证过程源码解析1、页面输入用户名密码,提交登录请求。2、登陆请求被UsernamePasswordAuthenticationFilter过滤器拦截,开始进行登录验证。3、UsernamePasswordAuthe

2020-10-05 10:08:29 573

原创 一、Spring Security核心原理及Demo演示

一、Spring Security 简介Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是一套保护基于spring开发的应用程序的事实标准。Spring Security是一个重点为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring Security的真正强大之处在于它可以很容易地扩展以满足定制需求。二、Spring Security 核心功能身份认证-用户登录;访问授权-权限控制;攻击防护-防止伪造身份;三、Spring

2020-09-04 14:31:44 550

原创 资源管理系统-基于角色的权限控制(role-based access control)

一、RBAC简介RBAC(role-based access control),基于角色的权限控制系统,是指对于不同角色的用户,拥有不同的权限 。用户绑定角色,角色绑定权限,形成用户-角色-权限的关系,如下图所示。用户角色权限关系图:二、技术框架选择前端:Vue、Vue-router、Axios、Js-cookie后端:SpringBoot、SpringSecurity、MyBatis、MyBatisGenerator、PageHelper、Redis、JWT三、用户登录及权限控制流程说明1

2020-09-03 11:58:54 1678 1

原创 资源管理系统-CKPLayer去除播放窗口水印

播放视频时有右上角的水印,去掉后观影效果会不会好呢,我们一起来试一下,前后对比效果:去掉后是不是变舒服了呢?看下怎么实现的:在ckplayer.js中搜索logo,能明显看到一句话:显示在右上角的logo图片,如果不需要可以删除该属性,果断注释掉然后在ckplayer.xml中搜索logo,把这部分也注释掉大功告成啦!...

2020-09-01 18:10:08 2959

原创 资源管理系统-VUE使用ckplayer实现视频列表播放

1、 下载ckplayer插件官网地址:http://www.ckplayer.com/down/2、加压后将ckplayer放进VUE项目的static目录下:3、创建VUE组件<template> <div id="video"></div></template><script> export default { name: 'ckplayer', props: ['videoUrls','autoP

2020-09-01 15:33:56 2098

原创 Rabbitmq实现多系统间的分布式事务,保证数据一致性

Rabbitmq实现多系统间的分布式事务,保证数据一致性一、实验环境二、实验目的三、实验方案四、实验步骤1、消息队列2、数据库准备2.1订单表2.2 消息发送状态表2.3 运单表3、订单中心3.1 订单中心分析3.2 编写代码3.2.1 Springboot整合rabbitmq和mysql数据库3.2.1.1依赖如下:3.2.1.2配置文件内容:3.2.2 订单中心代码3.3 订单中心测试3.3....

2020-01-30 23:51:47 3484 1

原创 Linux Centos7下配置Mysql5.7主从同步

数据库安装参考:https://blog.csdn.net/STIll_ly/article/details/103561594环境准备Linux发行版本:Centos7Mysql数据库版本:mysql-5.7.24主服务器地址:10.10.10.8从服务器地址:10.10.10.9配置主服务器首先root用户登录mysql,创建一个同步账号,授予该账号REPLICATION SL...

2019-12-17 12:10:19 247

原创 如何正确高效使用mysql数据库的索引--SQL查询优化

如何正确高效使用mysql的索引1. 如何获取性能有问题的SQL2. 使用慢查询日志获取有性能问题的SQL慢查询日志设置参数常用的慢查询分析工具(mysqldumpslow)常用的慢查询分析工具(pt-query-digest)3.如何实时获取有性能问题的SQL4.查询速度为什么会慢MYSQL服务器处理查询请求的整个过程:查询缓存对性能的影响SQL解析预处理及生成执行计划MYSQL优化器可优化的S...

2019-08-27 00:10:48 648

原创 如何正确高效使用mysql数据库的索引--索引优化策略

如何正确高效使用mysql的索引1. 索引列上不能是使用表达式或函数2. 前缀索引和索引列的选择性3. 联合索引4. 覆盖索引5. 使用索引扫描来优化排序1. 索引列上不能是使用表达式或函数例:索引列:out_date查询:select … from product where to_days(out_date) - to_days(current_date) <=30优化:se...

2019-08-26 18:11:28 368

原创 如何正确高效使用mysql数据库的索引——Btree索引和Hash索引

如何正确高效使用mysql的索引为什么要使用索引Mysql支持的索引类型B-tree索引的特点在什么情况下使用B树索引B树索引的使用限制Hash索引的特点Hash索引的限制索引是不是越多越好为什么要使用索引索引大大减少了存储引擎需要扫描的数据量索引可以用于排序以避免使用临时表,减少磁盘I/O消耗,提高Mysql处理能力索引可以把随机I/O转变为顺序I/O,更加充分发挥磁盘I/O性能M...

2019-08-26 16:00:40 3094

原创 自定义类的加载器实现热加载

一、前文传送门:JAVA类加载器JAVA类加载的双亲委派机制二、前置知识点1、每个类加载器有自己的名字空间,对于同一个类加载器实例来说,名字相同的类只能存在一个,并且仅加载一次。不管该类有没有变化,下次再需要加载时,它只是从自己的缓存中直接返回已经加载过的类引用。2、我们编写的应用类默认情况下都是通过 AppClassLoader 进行加载的。当我们使用 new 关键字或者 Class.forName 来加载类时,所要加载的类都是由调用 new 或者 Class.forName 的类的类加载器(也

2020-12-04 13:33:19 493 1

原创 JAVA类加载的双亲委派机制

JAVA类加载机制一、类加载器二、类加载器验证三、类的热加载1、同一个类加载器,不会重复加载相同的类。2、不同的类加载器,会重复加载相同的类。四、双亲委派模型一、类加载器类加载器负责装入类,搜索网络、jar、zip、文件夹、二进制数据、内存等指定位置的类资源。一个JAVA程序运行,最少有三个类加载器示例,负责不同类的加载。1、Bootstrap Loader-核心类库加载器。由C/C++实现,无对应的java类。加载JAVA_HOME/jre/lib目录或者用户配置目录下的类。2、Extension

2020-12-04 12:25:47 372

原创 JAVA类加载器

在 Java 中,类的实例化流程分为两个部分:类的加载和类的实例化。类的加载又分为显式加载和隐式加载。大家使用 new 关键字创建类实例时,其实就隐式地包含了类的加载过程。对于类的显式加载来说,比较常用的是 Class.forName。其实,它们都是通过调用 ClassLoader 类的 loadClass 方法来完成类的实际加载工作的。直接调用 ClassLoader 的 loadClass 方法是另外一种不常用的显式加载类的技术。类加载器负责装入类,搜索网络、jar、zip、文件夹、二进制数据、内存等

2020-12-04 11:12:39 295

原创 AOP-面向切面编程

作为一个Javaer,OOP(面向对象编程)是我们最先接触到并实践的概念,而AOP可能只是听过她的传说,并没有打过照面。今天我们就来一起揭开她神秘的面纱。一、什么是AOP?AOP(Aspect Oriented Programming)称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。在不改变原有的逻辑的基础上,增加一些额外的功能。代理也是这个功能,读写分离也能用aop来做。OOP面向对象编程,引

2020-10-28 15:12:04 380

原创 Git 如何删除远程服务器文件同时保留本地文件

Git 如何删除远程服务器文件同时保留本地文件Git 如何删除远程服务器文件同时保留本地文件Git 如何删除远程服务器文件同时保留本地文件在上传工程到git上时,有时候会把本地自动生成的以及设计隐私的账户信息传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,比如已经提交了配置文件application-pro.yml文件到远程仓库,现在我们要把它删除掉,命令如下:git rm --cached -r *pro.yml

2020-08-18 13:48:31 836

原创 SpringBoot整合mybatis查询数据库结果中的字段为null时不返回问题解决方法

多数据源情况对于多数据源的情况,需要在SqlSessionFactory bean中增加一段代码:org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); configuration.setCallSettersOnNulls(tr...

2020-01-15 17:42:02 5020 1

原创 Springboot+Mybatis+Druid多数据源配置

1. 新建Springboot项目根据实际填写依赖根据实际需要自行选择(此处可不选,接下载可以自己在pom文件中添加):选择项目路径,然后点击完成配置项目结构:将配置文件该成yml后缀名,看个人习惯,可不改呦新建controller,mapper等目录,结构如下:启动成功2. 配置多数据源添加Druid依赖: <!-- Druid连接池 -->...

2019-12-23 18:06:12 1183

原创 Win10安装mysql-5.7.28解压缩版(手动配置)方法

下载压缩包官网下载地址:https://dev.mysql.com/downloads/mysql/安装解压缩到指定文件夹下我的存放目录D:\app\mysql-5.7.28-winx64在D:\app\mysql-5.7.28-winx64目录下创建data文件夹和my.ini文件my.ini文件写入内容:[mysqld]port = 3306basedir=D:\ap...

2019-12-23 14:09:08 556

原创 Linux开通防火墙80端口

查看已开通端口列表[admin@localhost yum.repos.d]$ sudo firewall-cmd --list-port查看所有信息列表[admin@localhost yum.repos.d]$ sudo firewall-cmd --list-all;开通80端口命令[admin@localhost yum.repos.d]$ sudo firewall-cmd...

2019-12-20 11:36:44 388

原创 Linux Centos7下通过yum源安装Nginx

环境准备Linux发行版本:Centos7增加nginx yum源进入到yum源配置目录,创建文件nginx.repo,增加yum源信息[admin@localhost yum.repos.d]$ cd /etc/yum.repos.d[admin@localhost yum.repos.d]$ vim nginx.repo[admin@localhost yum.repos.d]...

2019-12-20 11:30:10 586

原创 Mysql创建数据库并授权等常用命令

环境准备Linux发行版本:Centos7Mysql数据库版本:mysql-5.7.24常用命令以root用户登录数据库[admin@localhost bin]$ mysql -uroot -pEnter password: 创建用户命令格式:CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;userna...

2019-12-16 16:52:02 394

原创 Linux Centos7下安装Mysql5.7数据库

环境准备Linux发行版本:Centos7Mysql数据库版本:mysql-5.7.24数据库下载方法一:官网下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz下载完成后使用ftp工具上传到服务器。方法二:直接通过wget命令在线下载:wget h...

2019-12-16 15:36:01 237

原创 Linux Centos7找不到ifconfig,netstat命令,安装net-tools工具

centos7 最小化安装之后,默认是没有 ifconfig,netstat命令的;我们可以直接使用 yum -y install net-tools 即可先来看下 net-tools的信息[admin@localhost ~]$ yum info net-toolsLoaded plugins: fastestmirrorLoading mirror speeds from cac...

2019-12-15 21:08:56 2477

原创 Linux Centos7下安装telnet服务

1. 查看是否已经安装telnet[admin@localhost ~]$ rpm -qa telnet-server[admin@localhost ~]$ rpm -qa xinetd2. 安装telnet查找yun列表[admin@localhost ~]$ yum list |grep telnettelnet.x86_64 ...

2019-12-15 20:42:02 1061 1

原创 Linux Centos7下使用LVM给系统硬盘扩容

环境准备Linux发行版本:Centos7开始操作检查一下磁盘使用情况:[root@localhost admin]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 50G 1.4G 49G 3% / #将给/目录扩容50Gdevtmp...

2019-12-12 18:10:19 430 1

原创 Linux Centos7安装Tomcat8教程

Linux Centos7安装Tomcat8教程环境准备Tomcat下载上传并解压Tomcat环境准备Linux发行版本:Centos7Tomcat版本: 8.5.35Tomcat下载官网下载地址:https://tomcat.apache.org/download-80.cgi点击Archives目录选择自己想要的版本,我选择版本:8.5.35上传并解压Tomcat通过ft...

2019-12-12 15:24:44 380

原创 Linux Centos7安装JDK8并配置环境变量

Centos7配置JDK8环境准备JDK安装环境准备Linux发行版本:Centos7JDK: 1.8.0_231JDK安装下载需要的JDK版本,官网地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html我选择64位Linux版本,先接受协议许可,再点击下载就可以了下载好后,通过ftp工...

2019-12-12 13:10:16 439

原创 Centos7.5安装SVN并配置Apache iF.SVNAdmin

Centos7.5安装SVN并配置ApacheSVN服务器搭建欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowcha...

2019-12-02 11:08:38 378

原创 在Linux Centos 6.3 上搭建SFTP文件服务器

在Linux上搭建SFTP文件服务器step1: 首先查看ssh版本,版本不应低于4.8p1,因为配置权限需要版本添加的新配置项ChrootDirectory来完成,若低于此版本,请自行升级。[root@localhost home]# ssh -VOpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010step2: 创建sftp用户组...

2018-07-28 00:33:40 390

原创 Linux常用命令学习--VI/VIM编辑器

vi: (Visual Interface)可视化接口vim : VIM相对于VI做了哪些提升 VIM支持多级撤销 VIM可以跨平台运行 VIM支持语法高亮 VIM支持图形界面 1. 常用方式: vim abc 使用vim打开abc文件,若文件不存在则创建该文件。 打开文件后进入命令模式,键盘输入i,进入输入模式,就可以在文件中输入信息。 ...

2018-07-22 11:31:18 270

原创 Linux常用命令学习--关机与重启

1. shutdown : 关机1.1 shutdown [选项] 时间 -c : 取消前一个关机命令 -h : 关机 -r : 重启1.2 half : 关机1.3 poweroff : 关机1.4 init 0 : 关机1.5 reboot : 重启1.6 init 6 : 重启1.7 init i i 是系统运行级别: ...

2018-07-22 09:14:55 800

原创 Linux常用命令学习--压缩与解压缩

.ZIP格式压缩1.zip 压缩文件名 源文件 : 压缩文件```[root@localhost ~]# zip locatefile.zip locatefile adding: locatefile (stored 0%)```zip -r 压缩文件名 源目录 : 压缩目录```[root@localhost ~]# zip -r link.zip linkaddi...

2018-07-19 23:14:43 1082

原创 Linux常用命令英文全称及中文对照--基础

一般命令_* **重点内容**cd1. ls1. pwd1. mkdir #列表内容标题 ##删除命令1. rmdir 目录删除 &amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; 用于删除目录,目录下存在文件夹,则不能删除,一般不用1. rm 文件删除...

2018-07-17 21:42:28 2356

原创 VMware上安装centos 6.3网络配置

VMware上安装centos 6.3 不能联网问题 自己电脑上使用VMWare安装Linux虚拟机遇到的网络连接问题,记录下来以便日后查看。 本文参照博客https://blog.csdn.net/maozherong/article/details/52071880 1. 在VMware中安装centos6.3,网络选择的是桥接模式,使用ifcongfig命令发现,找不...

2018-07-15 17:46:08 797 1

原创 JDK历史版本下载

JDK历史版本下载step1:打开 oracle官网 step2:找到 Menu=》Developers=》Downloads ,进入*step3:往下滑动找到JAVA=》Java(JDK) for Developers ,进入step4:往下滑动找到Java Archive,点击Dowload,进入下载页面step5:按照以上方法一顿操作,就能找...

2018-07-11 22:50:21 269

原创 Maven安装和环境搭建(配置环境变量)

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I

2018-07-04 22:51:06 255

JSONObject及依赖的jar包

java开发web应用经常用到的json数据,JSONObject类则必不可少哦,整理出来和大家分享!

2018-06-25

空空如也

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

TA关注的人

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