自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

single_cong的博客

凡此过往、皆为序章

  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 MyBatis-generator高级升级

先看兄弟篇:MyBatis-generator简单升级目的整合模板引擎,生成mapper、xml、entity三个类之外的其他类。例如:pojoInsert、pojoUpdate实体(用户更新新增接口接收参数)使用swagger注解实现API文档自动化显示。使用@NotBlank、@Length、@NotNull等注解实现参数校验。service接口接口作用接口名参数类型新增insertpojoInsert删除deleteString id更

2021-11-13 18:00:38 572

原创 MyBatis-generator简单升级

目的:生成的mapper方法名太长、我想改成自己的风格实体类集成lombok插件,省去大量get、set方法生成日期格式化代码:@JsonFormat(locale = "zh", timezone = "Asia/Shanghai", pattern = "yyyy-MM-dd HH:mm:ss")实体类集成swagger,自动生成API文档某些<if test="remark != null">等判断中缺失remark != ''判断(要试自己情况决定是否使用)实操引入Ma

2021-09-22 22:06:16 368

原创 浅谈权限设计(从接口权限到数据权限)

太久没写了,今天补一篇,本篇无实际代码,主要是设计思路。关于JWT:在我所开发的系统中用户Token都是有意义的,都会携带部分数据,不过多用于userId个人的权限系统使用历程:基于Security(不加表、角色放在Token中)注解验证(乱七八糟)使用Spring Security框架,将用户角色ROLE_USER写在account表中,UserDetailsService的实现方法中封装UserDetails返回,然后在接口上添加注解进行权限校验好处是简单,但是权限写在逻辑里面了。改权限就

2021-09-03 00:12:45 7864

原创 SpringBoot日期序列化

在一个请求中存在一个时间字段,但是前端传过来的值格式有问题,由此引出本文。问题:后端接收:@Data@NoArgsConstructor@ApiModel(value = "时间参数")public class DateInsert { @ApiModelProperty(value = "时间A") private Date a; @ApiModelProperty(value = "时间B") private Date b;}前端传输:{ "a":

2021-01-04 20:20:14 772

原创 微信小程序客服消息

验签在下面一步微信小程序后台开发设置的时候前提是此接口已经完成、否则微信小程序会验签失败!package com.cong.controller;import java.security.MessageDigest;import java.util.Arrays;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframew

2020-08-10 21:41:03 1410

原创 微信小程序登录

微信各接口定义(残缺版):package com.cong.security.core.properties;public class WXConstant { /** 获取access_token. */ public static String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"; /**

2020-08-10 20:40:11 409

原创 Apple登录

目前的APP在苹果上如果要使用第三方登录就必须实现apple登录,本文在Spring Security的基础上整合apple登录。苹果文档没有例子,没有代码,是真的烦。注意:使用苹果登录时尽量不要在登录后要求用户绑定手机号,尽量实现隐式注册的效果,否则也可能会被驳回。代码maven依赖<dependency> <groupId>com.auth0</groupId> <artifactId>jwks-rsa</artifactId>

2020-07-27 19:19:57 881 1

原创 Java接口防刷策略(自定义注解实现)

目的短信发送及短信验证码校验接口防刷一方面防止用户循环调用刷短信验证码另一方面防止用户循环调用测短信验证码(一般短信验证码为6位纯数字,一秒钟上百次调用,如果不做限制很快就能试出来了)很多接口需要防止前端重复调用误操作多次点击,不属于攻击类型,正常用户经常会触发的,例如信息发布可能前端限制未做好,误点击了多次,这种情况实际上应该只记录第一次的,后续的不应该继续操作数据库。极端的情况可能很多接口一天或者很长时间只能调用一次(类似签到?个人想法是尽量不让数据到了数据库层再抛异常)解决措施利

2020-06-01 17:48:33 6622 5

原创 Null key returned for cache operation(maybe you are using named params on classes without debug info

在使用@Cacheable注解的时候遇到的这个问题@Cacheable(value = RedisConstant.USER, key = "#id")UserShow userShow(String id);奇怪的是本地从没遇到过,生产上也是偶尔遇到,而@Cacheable注解肯定支持key属性,查看日志也没找到原因,最终在网上的一篇文章里面看到和debug模式有关,反射无法获取到参数值...

2020-05-05 19:13:30 3563

原创 MyBatis返回数据库自动生成主键

在部分数据库主键自动生成策略中,一些业务逻辑需要返回新增的数据标识,重查不现实,在insert的时候能够直接返回最好。MyBatis支持此种操作,只需要添加两个参数即可。XML形式<insert id="insert" parameterType="com.test.entity.User" keyProperty="id" useGeneratedKeys="true"> ...

2020-05-01 18:46:34 1046 2

原创 SpringSecurity之授权鉴权

一般系统中区分账号角色即可,除了后台管理这类对权限要求比较复杂的。权限表达式:使用一般在类上或者方法上添加注解使用(不需要对每一个接口配置权限,一般小项目用不到,只要数据库是逻辑删除可恢复这种简单的就可以使用)在启动类上添加注解:@EnableGlobalMethodSecurity(securedEnabled = true, jsr250Enabled = true, p...

2020-02-09 20:38:08 2051

原创 SpringSecurity之令牌配置

基于Oauth2发放token,在请求头中携带token作为用户身份鉴定Token参数配置定义可发放令牌的应用信息package com.cong.security.core.properties;import lombok.Data;@Datapublic class OAuth2ClientProperties { //应用id private String clientI...

2020-02-08 22:50:54 2241

原创 SpringSecurity升级之后token刷新接口401

在自定义的认证服务器配置类中添加如下内容@Override@SuppressWarnings("deprecation")public void configure(AuthorizationServerSecurityConfigurer security) throws Exception { security.tokenKeyAccess("permitAll()"); ...

2020-02-08 22:48:49 1803

原创 SpringSecurity重构登录逻辑

将前面写的用户名密码登录、短信登录、第三方账户登录整合成OAuth2协议生成token的模式AuthenticationSuccessHandler调用AuthorizationServerTokenServices返回令牌,AuthenticationSuccessHandler中含有Authentication信息,缺少OAuth2Request信息,组装OAuth2Request信息需要...

2020-02-08 19:53:23 2105

原创 SpringSecurity之OAuth2

简介### 标准的Oauth服务提供商login模块切换至APP依赖部分配置切换BrowserSecurityConfig中注入的passwordEncoder转至security-core项目,否则会报错bean找不到(在配置项中注入即可,本文转移至SecurityPropertiesConfig配置项config中)将成功失败处理器拷贝至APP项目中(处理模式不一样,无法抽象...

2020-02-07 23:28:18 1280

原创 SpringSocial之微信登录

编写顺序同SpringSecurity之QQ登录创建用户信息类WeiXinUserInfo:package com.cong.security.core.social.weixin.api;import lombok.Data;/** * 微信用户信息 */@Datapublic class WeixinUserInfo { //普通用户的标识,对当前开发者帐号唯一 pri...

2020-02-06 18:58:25 1542

原创 SpringSocial之QQ登录

编写顺序为:Api获取用户信息Oauth2Operations代表用户与服务提供者进行Oauth认证ServiceProvider服务提供商ApiAdapter连接统一的{@link Connection}模型和特定的提供者API模型的适配器ConnectionFactory构造服务提供者{@link Connection}实例的工厂的基本抽象。创建Connection保...

2020-01-19 20:18:53 1243 3

原创 Windows设置本地域名解析

修改C:\Windows\System32\drivers\etc路径下hosts文件(管理员身份)添加如下内容:浏览器访问当前域名即可指向本地80端口服务。

2020-01-18 21:38:16 3303 1

原创 SpringBoot2.X版本SocialAutoConfigurerAdapter缺失造成第三方登录接口授权失败

报错具体行为是PC端第三方登陆的链接显示未授权,跳转到自定义授权接口。原因:SpringBoot升级到2.X之后缺失social包,其中需要用到的是三个SocialWebAutoConfiguration、SocialAutoConfigurerAdapter以及SocialProperties,其中SocialProperties是参数配置,已经自行定义,此处不再需要,剩下的就只需要将1....

2020-01-17 18:21:39 1729

原创 SpringSecurity之SpringSocial认知

原理SpringSocial将以上流程分装进入SocialAuthenticationFilter过滤器中,将该过滤器加入到spring security的过滤器链里面,如下图:1-6步行为(服务提供商)ServiceProvider(AbstractOAuth2ServiceProvider)服务提供商OAuth2Operations(OAuth2Template)帮助完成流程...

2020-01-14 01:49:59 657

原创 SpringSecurity之短信验证码

短信验证码流程大致与图形验证码一致,在图形验证码笔记中已经记录了短信验证码相关配置,此处不再记录。验证码生成短信验证码生成接口已经完成,编写短信验证码发送接口SmsCodeSender:/*** 发送短信验证码接口 * * @param type * 短信类别 * @param mobile * 手机号 * @param code...

2020-01-12 22:09:41 885

原创 SpringSecurity之RememberMe

浏览器开发记住我功能因为我已经实现过Oauth认证,在那种情况下已经实现记住我功能(token有效期),所以这里只是简单记录一下,功能实现即可(用户登录的token一般存储在Redis中)。原理:配置BrowserSecurityConfig:package com.cong.security.browser;import com.cong.security.core.code.Va...

2020-01-11 14:52:12 453

原创 SpringSecurity之图形验证码

图形验证码使用:用户名密码登录防止用户重复输入用户名密码强行破解登录短信发送某些时候短信API的限量是无效的,此时需要在短信发送接口前进行图形验证码校验,防止短信盗刷(APP模块开发)类似于12306,利用图形验证码限流此处图形验证码按照视频教程做,笔记不完整,因为后面开发到APP模块之后会对图形验证码进行重构(不使用session,图形验证码放入Redis缓存,APP场景适用于当...

2020-01-10 23:52:25 778

原创 SpringSecurity之个性化认证

自定义登录页面以及返回值确定默认登录页面login.html:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>登录页面</title></head><body><h3>...

2020-01-10 17:07:23 476

原创 SpringSecurity之用户名密码登录

开始进行实际的Security的代码编写。Security官方文档过滤器链:目前已有的,后面再加也是加在绿色的过滤器链位置。建表(用户表,用于登录)CREATE TABLE `account` ( `id` varchar(32) NOT NULL COMMENT '主键,UUID编码', `user_name` varchar(11) DEFAULT NULL COMMENT...

2020-01-07 20:45:56 2423

原创 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Context

在使用SpringBoot测试的时候出现启动报错,具体日志如下:java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test at o...

2020-01-07 02:13:30 586

原创 Spring Security初识

前端时间学习了Spring Security,最近重学一次,同时整理一套笔记,方便后面遇错处理。跟着慕课网视频学习的,加了点自己的思路以及解决方式,不喜勿喷。项目依赖:security-core安全配置核心security-appAPP安全配置security-browser浏览器安全配置核心security-login登录注册模块demo项目提供API接口依赖关系:...

2020-01-07 01:27:30 302

原创 Zookeeper JAVA_HOME is not set and java could not be found in PATH

今天第一次学习Zookeeper,集群环境,在其中一台上面安装一直启动失败,记录一下问题提示JAVA环境不存在环境:三台服务器阿里云ECS(CentOS 7.6 64位)腾讯云服务器(CentOS 7.5 64位)阿里云轻量应用服务器(CentOS 7.3)问题出现在第三台服务器上,三台服务器Java环境安装都没有问题(有项目在跑),但是阿里云的轻量应用服务器安装Zookee...

2020-01-01 13:28:47 11133 7

原创 解决后端传输纯数字字符串JS精度缺失问题

问题描述:后端代码返回值为String,但是这个字符串为纯数字!!!纯数字,实际上是雪花算法生成的Long类型的标识,但是因为某些原因我进行了稍微的修改,使数据标志占高五位,造成生成的ID超过本来的长度,继而造成了后续的一系列问题(在保证接口返回值类型不变的情况下保证新旧版本都能获取到返回值而不是精度缺失后两位变成0)问题解决:强行变成字符(返回值为String类型,即ID)这个方法是...

2019-12-28 23:51:22 1787

原创 ElementUI之table表格表头添加筛选条件

代码:<template> <div class="bg-white px-3" style="margin: -20px;margin-top: -1rem;margin-bottom: 0!important;"> <el-tabs v-model="tabIndex"> <el-tab-pane :label="tab.name"...

2019-12-03 19:39:40 13446 1

原创 SpringBoot整合Redis之过期key监听

在缓存的使用场景中经常需要使用到过期事件,某些情况我们需要对缓存的过期事件进行监听并进行自己的操作,本文即为SpringBoot2.0整合Redis过期事件监听配置。SpringBoot整合Redis实现消息发布订阅修改缓存参数修改缓存的conf文件,设置参数notify-keyspace-events “Ex”,默认是无参数的,将参数设置为Ex即可。缓存配置在配置文件中进行缓存...

2019-11-27 14:29:49 2160

原创 SpringBoot项目启动后自动执行指定方法

做这个的原因:前端数据一直在变化,导致我每次打包之后需要清缓存处理缓存数据,故而有了本文,在项目启动之后自动执行指定方法,本文作用是实现同步缓存数据。开始配置,有两种方式:ApplicationRunner和CommandLineRunnerApplicationRunnerpackage org.config;import org.service.PushMessageServic...

2019-10-31 23:17:13 9924

原创 SpringBoot整合Redis之使用@Cacheable注解

@Cacheable实现自动缓存,属性为value、key和condition:参数作用value缓存的名称key缓存的 key, SpEL 表达式condition缓存的条件本文环境为SpringBoot2.X,以下为使用过程及个人理解:添加依赖<dependency> <groupId>org.springframew...

2019-10-30 23:00:09 5782 1

原创 Invalid bound statement (not found)

一般出现Invalid bound statement (not found)错误为映射文件配置错误,大概可以从一下几个地方排解:包扫描无论是xml配置文件还是yml配置文件,都需要配置mapperLocations属性方法名是否一致、是否冲突、参数类型是否一致一切都好,编译工具中也可以运行,maven打包发布之后报错!此种情况需要注意将mapper.xml文件放到resourc...

2019-10-22 16:28:27 287

原创 SpringBoot整合Redis实现消息发布订阅

前言:SpringBoot整合Redis此处不作赘述为减少篇幅,只有部分代码(不影响使用)本文基于lombok插件以及logback日志,所以如果某些注解报错或者无法导入基本是这两处的问题勿喷正文Redis常量配置(个人习惯,本类按需求而定)public class RedisConstant { /** * 消息订阅点赞主题 */ pub...

2019-10-01 15:19:45 7592 2

原创 Redis command timed out nested exception is io.lettuce.core.RedisCommandTimeoutException

报错如下:ERROR org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out after 500 millisecond(s) at org...

2019-09-19 13:21:09 54665 8

原创 Centos安装ElasticSearch

我在ubuntu系统上安装过一次ElasticSearch,流畅的不行,没想到Centos系统会出现那么多问题,记录一下解决过程(系统重装了好几次,所以从第一步开始写,尽量全点):JDK安装创建目录mkdir jdk(在/usr/local/文件夹下)将压缩包拷贝到当前目录解压(目前JDK下载需要Oracle账号,所以我是找的资源利用FTP传过来的)解压文件tar -vxf jdk-8u...

2019-09-13 17:54:10 382

原创 ElasticSearch安装排坑

最近在学习ElasticSearch,在服务器上安装了一个,以下是我在安装过程中遇到的坑,记录一下。环境:Linux系统,ElasticSearch5.6(第一次装的是新的,和JDK冲突,换到的老版本)JDK版本问题我是最近安装的,可能版本更新太快了吧,服务器还在使用JDK8,然而最新的ElasticSearch要求JDK11,没办法,只能找以前的版本安装(毕竟服务器有些东西是跑在JDK...

2019-08-22 16:24:45 365

原创 jd-gui初使用

下载地址:https://github.com/java-decompiler/jd-gui/releasesWindows版本百度云链接:https://pan.baidu.com/s/1ilyEIiKLuQouApL0Lt6Ykg提取码:3zkb查看.class文件的工具,相信看到这篇文章的基本都和我一样第一次接触这东西,下面是我遇到的一个坑:假如你想查看User.class文件,那么...

2019-08-16 23:39:58 12236 3

原创 Java截取视频生成Gif动图

添加jar包依赖<!-- 视频截图 --><dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.2</version></dependency...

2019-07-22 16:20:10 6220 2

UnlimitedJCEPolicyJDK8.7z

解决java.security.InvalidKeyException: Illegal key size异常

2020-08-10

nick_name.sql

MySQL5.7版本,未加密,直接转储即可使用,大约6W条,适用于初始用户建立。游戏随机名称、机器人名称、QQ、微信个性网名大全

2020-04-22

空空如也

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

TA关注的人

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