物联网服务遇到「重放攻击」的应对措施
最近整理文档,发现之前共享充电宝项目物联网服务记录了接入某厂家设备遇到的问题,里面提到了「重放攻击」。对接过程中发生了很多事,有些事已经分析解决了,有些问题依然还存在。xx 需要 http 80 端口通讯(5 个 http 借口),而业务端下发指令的请求也是到网关服务,使用的也是 80 端口。之前 xx 就出现过网关的 80 端口受到 重放攻击(Replay Attacks),这攻击主要是捕捉历史
最近整理文档,发现之前共享充电宝项目物联网服务记录了接入某厂家设备遇到的问题,里面提到了「重放攻击」。对接过程中发生了很多事,有些事已经分析解决了,有些问题依然还存在。xx 需要 http 80 端口通讯(5 个 http 借口),而业务端下发指令的请求也是到网关服务,使用的也是 80 端口。之前 xx 就出现过网关的 80 端口受到 重放攻击(Replay Attacks),这攻击主要是捕捉历史
前沿自从接入了 Knife4(swagger 增强版) 后,前端同事对于接口的要求就提高了。要求参数是否必要的属性,要标注准确。这个好解决,多定义几个 DTO、VO 之类的,一个请求响应定义一个 VO 和 DTO 肯定能解决。后面发现有的接口返回数据(data)没有参数类型说明,主要集中在使用 AjaxResult 的静态方法返回数据时出现。后来发现,使用 R 的静态方法返回数据就可以正常显示。对
前言若依前后端分离版默认携带的是 pagehelper-spring-boot-starter 分页插件,分页插件依赖里包含了 Mybatis。若依对分页部分做了一个封装,可以在内部获取请求中携带的页码和每页记录数,再调用 PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);。本来没打算搞mybati
真的是不改没毛病,一改问题一大堆。在修改了默认生成的实体,添加 @Data、@@EqualsAndHashCode(callSuper = true) 等 lombok 注解,并删除原来的 xxGetter、xxSetter 和 toString 等方法,并添加 swagger 实体和属性注解。之后尝试 clean 再 package 打包,然后就报了这个错:Cannot find 'scope'
对若依的系统工具自动生成的代码添加接口注解,然后就报错了ERROR s.d.s.w.p.DocumentationPluginsBootstrapper - [scanDocumentation,98] - Unable to scan documentation context default java.lang.NullPointerException: null at springf
主要是实例名冲突了,使用 @Alias 注解重新取一个实例别称就可以解决:@Alias("SettlementResult") public class Result<T> implements Serializable { ...
前言OpenFeign 也是属于那种看上去就比较神奇的组件,Spring Cloud 前缀说明与微服务相关。它在声明了另一个服务里的请求地址和方法之后,就可以直接注入到控制器中,像 service 一样方便的调用。之前接触过 RestTemplete、HttpClient,还有若依框架里面,直接用 URLConnection 手搓一个客户端。感觉上都大同小异,可论代码整洁度,那还是 OpenFei
前言之前对于 MapStruct 没什么印象,MapStruct 一般会跟着 Mybatis 一起引入到项目中,猜测是一个跟 Mybatis 搭配使用的组件。这次遇到比较一个棘手的情况,领导要把几家 GPS 供应商的 API 统一到一个项目中进行管理,包括车辆、设备(GPS)以及设备产生的历史轨迹和报警信息(设置电子围栏后会产生报警信息)。后面有可能的话,还要把设备本身集成到项目中统一管理。这有点
若依中提交 POST 类型的方法为 HttpUtils.sendPost(String url, String param),可以同时处理 http 和 https 请求。处理 JSON 格式数据只需要修改原请求的 contentType 类型值即可。原来的请求参数:URL realUrl = new URL(url); URLConnection conn = realUrl.openConne
PHP 中的标准化日期格式为 Y-m-d H:i:s,而 Java 中标准日期格式应为 yyyy-MM-dd HH:mm:ss。疏忽大意,将日期格式 JsonFormat("yyyy-MM-dd HH:ii:ss"),修改之后问题解决。