丢掉幻想,准备斗争!
Spring Secuirty 使用手机号、短信验证码登录(身份认证)
前言对于登录方式,PC 端后台一般会选择账号密码登录,如果是 ToC 的服务,也会支持手机号+短信验证码的登录方式,甚至如果有 APP,还可以支持扫码登录。当然还有腾讯系、阿里系的应用喜欢的三方授权登录。移动端(国内)通常的应用都会优先选择手机号+短信验证码的方式,即使这样商家会有额外的短信成本负担。比如现在的微信手机号快速认证(所谓“一键登录”)组件已经开始堂而皇之的收费了,跟短信收费也差不太多
孤舟蓑笠翁,独钓寒江雪
GoEnhance AI 生成
MySQL 统计近 30 天和近 12 个月的每月记录数
大屏数据有一个折线图,需要近 30 天的和近 12 个月的每月记录数统计。一开始想的是数据先按照天或者月统计完数据之后,再通过排序解决:List<DistributionDTO> distributionDTOList = statisticService.selectCarDistribution(); distributionDTOList.sort(Comparator.comp
物联网服务遇到「重放攻击」的应对措施
最近整理文档,发现之前共享充电宝项目物联网服务记录了接入某厂家设备遇到的问题,里面提到了「重放攻击」。对接过程中发生了很多事,有些事已经分析解决了,有些问题依然还存在。xx 需要 http 80 端口通讯(5 个 http 借口),而业务端下发指令的请求也是到网关服务,使用的也是 80 端口。之前 xx 就出现过网关的 80 端口受到 重放攻击(Replay Attacks),这攻击主要是捕捉历史
若依前后端分离版分页数据 knife4j 文档响应参数查看不到类型说明
前沿自从接入了 Knife4(swagger 增强版) 后,前端同事对于接口的要求就提高了。要求参数是否必要的属性,要标注准确。这个好解决,多定义几个 DTO、VO 之类的,一个请求响应定义一个 VO 和 DTO 肯定能解决。后面发现有的接口返回数据(data)没有参数类型说明,主要集中在使用 AjaxResult 的静态方法返回数据时出现。后来发现,使用 R 的静态方法返回数据就可以正常显示。对
MySQL 5.7 根据关联表更新当前表
之前不知道还有可以这么操作的 SQL,都是先取出数据再遍历循环更新。百度了一下,大概的几种方式记录一下。mysql根据一个表的数据更新另一个表数据的SQL写法方法一:使用 JOIN 语句(后面测试执行报错 Syntax Error)update table2 set table2.column2 = table1.column1 join table1 on table2.id = table1.
若依前后端分离版集成mybatisplus实现mybatis增强
前言若依前后端分离版默认携带的是 pagehelper-spring-boot-starter 分页插件,分页插件依赖里包含了 Mybatis。若依对分页部分做了一个封装,可以在内部获取请求中携带的页码和每页记录数,再调用 PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);。本来没打算搞mybati
Spring 打包时报错:Cannot find 'scope' in class org.apache.maven.plugin.compiler.DependencyCoordinate
真的是不改没毛病,一改问题一大堆。在修改了默认生成的实体,添加 @Data、@@EqualsAndHashCode(callSuper = true) 等 lombok 注解,并删除原来的 xxGetter、xxSetter 和 toString 等方法,并添加 swagger 实体和属性注解。之后尝试 clean 再 package 打包,然后就报了这个错:Cannot find 'scope'
Spring 添加 swagger 注解报错 DocumentationPluginsBootstrapper - [scanDocumentation,98] - Unable to scan documentation context default
对若依的系统工具自动生成的代码添加接口注解,然后就报错了ERROR s.d.s.w.p.DocumentationPluginsBootstrapper - [scanDocumentation,98] - Unable to scan documentation context default java.lang.NullPointerException: null at springf
Java 定义解析类运行报错:The alias 'Result' is already mapped to the value 'xx.Result'
主要是实例名冲突了,使用 @Alias 注解重新取一个实例别称就可以解决:@Alias("SettlementResult") public class Result<T> implements Serializable { ...