自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

你我翻滚过的榻榻米味道熟悉

不登高山,不知天之高也;不临深溪,不知地之厚也

  • 博客(189)
  • 资源 (7)
  • 收藏
  • 关注

原创 【Sa-Token】八、Sa-Token开启全局侦听器

接口SaTokenListener是Sa-Token的全局侦听器,通过实现此接口,你可以在用户登陆、退出、被踢下线等关键性操作时进行一些AOP操作框架对此侦听器的默认实现是log日志输出,你可以通过配置sa-token.is-log=true开启下面我们演示一下如何自定义侦听器的实现:/** * 自定义侦听器的实现 */@Componentpublic class MySaTokenListener implements SaTokenListener { /** 每次登录时触发

2021-08-01 18:54:30 14

原创 【Sa-Token】四、Sa-Token开启注解式鉴权

前面我们已经介绍了路由式的鉴权方式,即就是拦截需要鉴权的 API 路径,允许哪些能够匿名访问,哪些必须要登录后才能访问,本篇文章介绍,如何使用 “注解式” 鉴权方式1、开启注解式鉴权/** * 注册拦截器 * * @param registry */@Overridepublic void addInterceptors(InterceptorRegistry registry) { // 注册登录拦截器 registry.addInterceptor(new SaToken

2021-08-01 18:51:26 10

原创 【Sa-Token】六、Sa-Token集成Redis

Sa-Token 支持 Redis、Memcached 等专业的缓存中间件中, 做到重启数据不丢失,而且保证分布式环境下多节点的会话一致性一、引入Maven依赖<!-- springboot集成redis --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artif

2021-08-01 18:45:28 6

原创 【Sa-Token】五、Sa-Token授权操作

Sa-Token 在用户登录之后,并不会马上授权,而是等到需要验证的时候,才会去授权,授权也非常简单,我们只需要实现 StpInterface 接口,重写 getRoleList、getPermissionList 两个方法就好了,与 shiro 一样,同样返回 role 的标识集合,和 permission 的标识集合就好了1、用户授权package com.asurplus.common.satoken;import cn.dev33.satoken.stp.StpInterface;impo

2021-08-01 18:37:28 7

原创 【Sa-Token】七、Sa-Token抛出的异常统一处理

在 Sa-Token 的登录,授权,验证过程中,会抛出很多的异常,我们不能将这些异常信息直接返回给用户,因为用户是看不懂这些异常信息的,我们就需要对这些异常信息进行处理,处理之后再返回展示给前端用户1、统一异常处理package com.asurplus.common.satoken;import cn.dev33.satoken.exception.*;import com.asurplus.common.utils.RES;import org.springframework.web.bin

2021-08-01 18:28:23 8

原创 【Sa-Token】三、Sa-Token开启路由式鉴权

登录拦截,也就是说我们需要配置哪些 API 是用户不需要登录就可以访问的,哪些 API 必须要登录之后才能访问的1、创建拦截器package com.asurplus.common.satoken;import cn.dev33.satoken.stp.StpUtil;import org.springframework.http.HttpMethod;import org.springframework.stereotype.Component;import org.springframew

2021-08-01 18:24:27 5

原创 【Sa-Token】二、Sa-Token基本配置类

我们已经实现了 Sa-Token 的登录方法,并在登录成功后,返回给前端 token 信息,本篇文章介绍在 Sa-Token 中的一些个性化配置参数配置参数我们可以写在 SpringBoot 的配置文件中,也可以通过配置类,来配置 Sa-Token 的参数信息,本片文章主要讲配置类的方式1、配置文件 方式server: # 端口 port: 8080# Sa-Token配置sa-token: # token名称 (同时也是cookie名称) token-name

2021-08-01 18:14:36 9

原创 【Sa-Token】一、Sa-Token实现登录功能

Sa-Token 介绍Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题开发文档地址:Sa-Tokenhttp://sa-token.dev33.cn/doc/index.html#/一、引入 Sa-Token<!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ --><dependency> <

2021-08-01 18:01:27 10

原创 LayUI中laydate组件改装,只选时分秒

layui 中默认选择日期的界面如下:选择时间的界面如下:意思就是我们必须要先选择日期,才能选择时间,我们来改装一下:// 只选时分秒laydate.render({ // 绑定元素 elem: '#test1', // 类型:时间 type: 'time', // 格式:时分秒 format: 'HH:mm:ss', ready: function(date) { let dom = $(".laydate-time-list").children("li"); for(

2021-07-08 16:30:58 18

原创 【SpringBoot】四十九、SpringBoot中手动抛出异常回滚事务

我们通常在项目中都是使用全局事务配置,这样我们就不必在每个业务类的方法上加 @Transactional 注解,只要代码抛出异常,就会自动回滚事务但是我们有的时候需要事务回滚并不一定是代码发生了异常,而是我们对业务逻辑的判断需要回滚事务,这时候,我们需要手动抛出运行时异常,例如:/** * before */if (null == obj) { // 手动抛异常 throw new RuntimeException("对象为空,不能继续进行");}/** * after *

2021-06-25 09:57:08 65

原创 数据库设计文档生成工具类

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,如果数据库表结构更新了还得手动更新维护到文档中,很是繁琐。GitHub 上发现了一个好工具 screw(螺丝钉),在此分享下1、引入依赖<!-- screw核心 --><dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> &lt

2021-06-15 17:05:20 2413 131

原创 Java中解密微信加密数据工具类

当我们开发微信公众号,小程序等,微信返回给我们的数据往往是经过加密的,我们需要使用 sessionKey 配合解密,才能得到我们想要的数据1、引入依赖<!-- lombok依赖 --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</opti

2021-06-15 10:10:45 3451 119

原创 朋友圈发布时间格式化工具类

类似于朋友圈发布时间格式化工具,一秒前,一分钟前,一小时前,昨天,一天前…package com.walking.common.utils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * 朋友圈发布时间格式化工具类 * * @Author

2021-06-08 11:15:24 2493 115

原创 【RabbitMQ】二、RabbitMQ安装Centos版

一、安装环境依赖yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel二、安装 Erlang1、下载wget http://erlang.org/download/otp_src_22.0.tar.gz放在目录 /usr/local/src/ 目录下2、解压tar -zxvf otp_src_22.0.tar.gz3、移动

2021-05-26 14:41:52 33

原创 【Shiro】七、Shiro实现控制用户并发登录并踢人下线

在传统的项目中,同一账户是允许多人同时登录在线的,有的使用场景恰恰是不允许多人同时在线的,那么我们可以通过 Shiro 来控制并发登录,并实现后登录的用户,挤掉前面登录的用户1、并发登录过滤器package com.asurplus.common.shiro;import com.asurplus.system.entity.SysUserInfo;import org.apache.shiro.SecurityUtils;import org.apache.shiro.cache.Cach

2021-05-22 22:03:47 106

原创 【Shiro】六、Shiro实现限制密码错误次数从而限制用户登录

我们的系统非常容易遭受攻击,被人暴力破解等,我们需要对同一账户密码错误次数进行统计,达到上限后,需要在一段时间内限制该用户登录,从而有效地保护账户密码的安全1、重试限制散列凭据匹配器package com.asurplus.common.shiro;import org.apache.shiro.authc.AuthenticationInfo;import org.apache.shiro.authc.AuthenticationToken;import org.apache.shiro.

2021-05-22 21:48:49 82

原创 【Shiro】五、Shiro整合Ehcache进行热点数据缓存

在 SpringBoot 中整合 Ehcache 非常简单,只需要在启动类加上注解 @EnableCaching,那么就会自动加载默认的 EhcacheManager,从而达到快速使用,那么我们需要在 Shiro 中有自己的 EhcacheManager 对象,我们就需要自己加载属于我们 Shiro 的 EhcacheManager1、引入 maven 依赖<!-- ehcache整合 --><dependency> <groupId>org.apach

2021-05-22 21:31:49 30

原创 【Shiro】三、Shiro实现自定义密码验证规则

我们在使用 Shiro 实现登录的时候,我们只需要将账号、密码,Shiro 会自动判断账户、密码是否正确,那么 Shiro 怎么会知道我们的密码加密规则呢?所以我们需要自定义密码的加密规则1、自定义加密规则/*** 凭证匹配器* 执行login(token)后由securityManager调用,用于计算密码加密后的密文** @return*/@Beanpublic HashedCredentialsMatcher hashedCredentialsMatcher() { Has

2021-05-22 20:54:06 66

原创 【Shiro】二、Shiro实现Session会话过期时间控制

一般我们的 session 过期时间默认为 30 分钟,有的用户认为 30 分钟太短了,有时候临时有事出去了,回来已经过期了,工作还没完成就只能登出了,非常不方便,于是要求我们改变 session 的过期时间1、指定本系统 sessionid/** * 指定本系统sessionid, 问题: 与servlet容器名冲突, 如jetty, tomcat 等默认jsessionid, * 当跳出shiro servlet时如error-page容器会为jsessionid重新分配值导致登录会话丢失!

2021-05-22 15:01:36 61

原创 【Shiro】四、Shiro实现记住登录功能

用户每次在登录系统时需要重新输入账户、密码、验证码等信息,非常麻烦,于是要求加一个记住登录的功能,这对于 Shiro 来说是非常简单,下面就让我们一起来实现记住登录功能一、使用场景在登录界面,我们需要放置记住登录的选择框,当用户勾选“记住登录”后,在用户下次打开浏览器进入系统时,能够无感登录,即不需要进入到登录界面输入用户信息二、功能开发1、当用户勾选“记住登录”后,我们在登录接口需要接受是否记住登录这个参数@ApiOperation(value = "登录验证") @ApiImpl

2021-05-22 14:52:26 36 2

原创 【Shiro】一、Shiro实现登录授权认证功能

之前在 SSM 项目中使用过 shiro,发现 shiro 的权限管理做的真不错,但是在 SSM 项目中的配置太繁杂了,于是这次在 SpringBoot 中使用了 shiro,下面一起看看吧一、简介Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。三个核心组件:1、Subject即“当前操作用户”。但是,在 Shiro 中,Subjec

2021-05-22 14:27:28 118

原创 【SpringBoot】四十八、SpringBoot中整合MyBatis-Plus实现自动填充创建时间、更新时间字段等

我们在设计数据库模型时,通常数据表中会包含创建人、创建时间、更新人、更新时间等字段,我们希望在执行插入操作时自动填充创建时间、更新时间字段的内容,执行更新操作时自动更新更新时间字段这样的操作,MyBatis-Plus 可以帮助我们实现1、MySQL 自带功能创建时间可以设置默认值为 CURRENT_TIMESTAMP,在 MySQL 5.7 以上版本支持更新时间可以设置默认值为 CURRENT_TIMESTAMP,并勾选根据当前时间戳更新,在 MySQL 5.7 以上版本支持以上是 MySQL

2021-05-10 22:55:02 240 2

原创 拼接字符串?试试 StringJoiner 吧!

我们通常需要拼接字符串的时候呢,多半都是使用 StringJoiner 或 StingBuilder 进行循环遍历拼接,这样既费时又费力,本次推荐 Java8 中推出的 StringJoiner1、使用 StringBuffer 拼接字符串public static void main(String[] args) { // 需要拼接的list List<String> list = new ArrayList<>(); for (int i = 0; i

2021-05-10 21:59:49 44

原创 Nginx限制IP访问只允许特定域名访问

为了我们的服务器安全,我们需要禁止直接使用 IP 访问我们的服务器,我们可以借助 Nginx 完成1、找到 nginx 的配置文件cd /usr/local/nginx/conf/找到 nginx.conf 文件编辑它2、添加新的 server# 禁止ip访问server { listen 80 default_server; listen 443 ssl default_server; server_name _; return 403;}注

2021-04-23 15:54:08 1659 67

原创 Nginx中安装免费SSL证书开启Https请求

在部分场景中,我们必须使用 https 请求,因为 https 请求更为安全,常用于支付方面的请求调用https 的基础是 ssl,我们一般是没有 ssl 证书的,我们需要向供应商购买 ssl 证书,今天我们使用 Let’s Encrypt 获取免费证书,搭建我们的 https 请求1、安装 Nginx在 Centos 中搭建 nginx 环境,可以参考我的这篇文章,Centos7中搭建Nginx环境https://lizhou.blog.csdn.net/article/details/11604

2021-04-23 11:49:58 3556 260

原创 Centos7中搭建Nginx环境

1、安装redis编译的c环境yum install gcc-c++2、Nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 Linux 上安装 pcre 库yum install -y pcre pcre-devel3、Nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 Linux 上安装 zlib 库yum install -y zlib zlib-devel4、Nginx 也支持 https(即在 ssl 协议上传输.

2021-04-23 10:11:03 69

原创 MySQL中出现sql_mode=only_full_group_by问题解决

问题描述:在 MySQL 5.7 以上的版本中 sql_mode 新加入了 only_full_group_by,导致我们在使用 group by 函数的时候,则会报错举例说明:SELECT * FROM sys_user_info GROUP BY sex解决方法:找到 /etc/my.cnf 文件,加入内容:sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO

2021-04-21 16:36:26 45 1

原创 写给大忙人看的 - Java中拉取网络图片上传至MinIO服务器(五)

背景在日常开发过程中,我们会需要将第三方授权的用户头像上传保存至我们自己的服务器例如:微信用户头像,在用户更改头像后,原先的头像地址会失效,这时我们如果直接使用该用户的微信头像图片地址,则会失效那么我们就需要将微信用户的头像拉取存储到我们自己的文件服务器上,这样就不会失效了1、将网络图片转化为 InputStream 对象package com.mty.common.utils;import org.apache.commons.lang3.StringUtils;import java.

2021-04-12 22:09:49 213 1

原创 【SpringBoot】四十七、SpringBoot中如何静态加载配置文件

前言我们知道在 SpringBoot 中有默认的配置文件 application.yml 或 application.properties,我们可以通过 @ConfigurationProperties(prefix = “test”) 或 @Value("${test}") 等方式获取到配置内容,那有的时候我们需要通过静态的方式读取配置文件的内容,这种方式就不能实现了1、创建配置文件我们将配置文件放在根目录下,里面配置的是微信公众平台的一些信息2、读取配置文件package com.asurp

2021-03-24 22:21:57 10876 390

原创 Nginx搭建负载均衡实现高并发

有的时候我们部署的项目并发人数一旦增加,单体项目很容易挂掉,不是我们的服务器配置不够,因为每一个 tomcat 的能力是有限的,导致了拖慢访问速度,这个时候我们就可以使用负载均衡1、负载均衡简介       负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。      &nb

2021-03-08 16:11:45 2064 115

原创 Nginx部署VUE项目

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,是部署前端项目的首选,在 Nginx 中部署 vue 项目的步骤如下:1、原始配置文件如下worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on;

2021-03-08 15:45:29 618

原创 Nginx配置二级域名

当一个域名需要使用在两个项目上后,我们就需要使用到二级域名,在 Nginx 中配置二级域名如下:1、原始配置文件如下events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server {

2021-03-08 15:29:04 500

原创 【SpringBoot】四十六、SpringBoot中整合JWT实现Token验证(拦截器篇)

前言上篇文章我们已经实现了使用自定义注解验证 token 信息,这样我们就会发现,当我们需要验证的接口较多时,我们需要每个方法上面都加上 @JwtToken 这个注解,也是非常麻烦, 本片文章,我们继续使用拦截器来实现 token 信息的验证如果对整合 JWT 还不熟悉的朋友,可以先看看我的这篇博客:【SpringBoot】四十四、SpringBoot中整合JWT实现Token验证(整合篇)如果对自定义注解验证 token 信息感兴趣的朋友,可以看看我的这篇博客:【SpringBoot】四十五、Spr

2021-02-28 11:40:39 10901 441

原创 【SpringBoot】四十五、SpringBoot中整合JWT实现Token验证(注解篇)

前言上篇文章,我们已经在 SpringBoot 中整合了 JWT 并实现了 Token 验证,那我们在实际应用中就会发现,如果每个 视图层(controller)都手动验证 token,代码就会显得特别臃肿,本篇文章主要为了解决该问题。如果对整合 JWT 还不熟悉的朋友,可以先看看我的这篇博客:【SpringBoot】四十四、SpringBoot中整合JWT实现Token验证自定义注解1、创建自定义注解package com.asurplus.common.annotation;import

2021-02-28 11:27:33 11960 482

原创 【SpringBoot】四十四、SpringBoot中整合JWT实现Token验证(整合篇)

什么是JWT?Json web token (JWT),是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519),该 token 被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。为什么需要JWT?当我们开发前后端分离项目时,要求我们对用户会话状态要进行一

2021-02-28 11:12:51 6341 248

原创 【SpringBoot】四十三、SpringBoot中整合RabbitMQ实现延时队列

一、介绍1、什么是延时队列?延时队列即就是放置在该队列里面的消息是不需要立即消费的,而是等待一段时间之后取出消费2、适用场景(1)商城订单超时未支付,取消订单(2)使用权限到期前十分钟提醒用户(3)收益项目,投入后一段时间后产生收益二、实现方式从以上场景中,我们可以看出,延时队列的主要功能就是在指定的时间之后做指定的事情,那么,我们思考有哪些工具我们可以使用?1、Redis 监听过期 Key可以参考我的博客【SpringBoot】三十五、SpringBoot整合Redis监听Ke

2021-02-21 14:42:29 10520 385

原创 【SpringBoot】四十二、SpringBoot中自定义Favicon

一、介绍所谓 favicon,即 Favorites Icon 的缩写,顾名思义,便是其可以让浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站。当然,这不是 Favicon 的全部,根据浏览器的不同,Favicon 显示也有所区别:在大多数主流浏览器如 FireFox 和 Internet Explorer (5.5及以上版本)中,favicon 不仅在收藏夹中显示,还会同时出现在地址栏上,这时用户可以拖曳 favicon 到桌面以建立到网站的快捷方式;除此之外,标签式浏览器甚至还有不少扩

2021-02-21 14:13:15 216 1

原创 Centos7中安装Maven环境

一、下载wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz二、解压tar vxf apache-maven-3.6.3-bin.tar.gz三、配置环境变量进入 etc 目录cd /etc/编辑 profile 文件vim profile在末尾添加以下几行MAVEN_HOME=/usr/local/mavenexport MAV

2021-02-20 10:41:02 688 84

原创 【SpringBoot】四十一、SpringBoot中使用脚本命令启动、停止程序

我们经常部署 SpringBoot 应用,一般将应用打包成 jar 包的方式上传至服务器,通过命令启动程序,我们每次都需要去手动敲命令来控制程序的启停,容易出错,我们可以通过脚本的方式,记住一些常用的命令1、后端启动nohup java -jar test-1.0.jar > nohup.out 2>&1 &启动后,并将日志输出到 nohup.out 文件中2、修改配置启动nohup java -jar test-1.0.jar --server.port=8081

2021-01-19 14:47:29 10778 501

原创 【SpringBoot】四十、SpringBoot中使用Aspose将文件转为PDF实现在线预览

一、简介Aspose 是 .NET 和 Java 开发组件以及为 Microsoft SQL Server Reporting Services 和 JasperReports 等平台提供渲染扩展的领先供应商。它的核心重点是提供最完整和最强大的文件管理产品。Aspose 产品支持一些商业上最流行的文件格式,包括:Word 文档、Excel 电子表格、PowerPoint 演示文稿、PDF 文档、Flash 演示文稿和项目文件。二、下载下载 Aspose 的依赖 Jar 包可以通过一下仓库下载:Aspo

2021-01-02 14:34:10 11152 663

自定义划分区域获取区域内坐标点-百度地图

调用百度地图API,实现自定义划分区域,圆型,长方形,不规则图形,并能够计算区域内的坐标点数,并使用了点聚合方式渲染大量的坐标点

2020-12-04

省市区级联SQL数据.zip

更新了最新的省市区三级SQL数据文件,包含三张表,省、市、区,各一张表,最新,最全

2021-06-03

Java转PDF.zip

该资源包括了 Java 中转 PDF 所使用的方法与 jar 包,包括:pd4ml.jar,fonts.jar,ss_css2.jar,PDFUtils.java

2020-08-11

Tomcat服务监控工具probe

1、我们在日常的生产过程中,需要跟Tomcat这个服务器打交道,例如:项目部署,项目启停,项目更新等操作,我们都是登录到服务器系统中对Tomcat进行操作,这样一来,容易引发误操作,可能我们命令误输入,对服务器进行误操作。 2、有了问题,我们就需要解决,于是找到这款Tomcat的监控神器——probe,通过简单配置,即可在probe的操作界面进行图形化操作,避免我们在黑窗口的很多误操作,提高安全性。 使用文档:https://blog.csdn.net/qq_40065776/article/details/100167613

2020-04-08

一款网页图片预览插件:viewer

Viewer,一款好用的图片预览插件 使用文档:https://blog.csdn.net/qq_40065776/article/details/103893243

2020-04-08

网页打印工具:clodop

HTML中使用clodop打印订单信息等,还支持打印预览 使用文档:https://blog.csdn.net/qq_40065776/article/details/103892624

2020-04-08

consul_1.4.1_windows_amd64.zip

Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 服务发现、健康检查、Key/Value存储、多数据中心 内含consul.exe,还有启动指南等

2020-04-08

空空如也

空空如也

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

TA关注的人 TA的粉丝

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