- 博客(131)
- 资源 (12)
- 收藏
- 关注
原创 commons-collections: CircularFifoQueue 线程非安全
commons-collections CircularFifoQueue
2022-06-27 11:36:47 824
原创 mqtt publish 中文
mqtt 3.1、5.0 中,publish payload,content编码方式由业务应用自己决定(发送和接收,使用相同的编码方式即可);测试验证:mqtt.fx publish body包含中文,发送时,好像使用的是GBKmqtt.fx subscribe,显示的却是乱码,=》挺奇怪的,自己发,自己收,竟然乱码使用代码,subscribe,解码时使用GBK,可以成功解码clientid使用UTF-8编码username使用UTF-8编码topic使用U.
2022-03-15 10:38:26 2058 1
原创 emqx 编译问题:Rebar dependency crypto could not be loaded for reason
环境:centos7make时,总是报错:Rebar dependency crypto could not be loaded for reason {“no such file or directory”,“crypto.app”}即缺少crypto依赖原因:erlang src编译安装过程中,应该是没有先安装openssl-devel;yum install openssl-devel而是,直接解压otp_src_22.0.tar.gz,编译,安装;./config
2022-02-26 18:23:39 711
原创 KEPServerEx 简单分析
1.官网介绍https://www.kepware.com/zh-cn/products/kepserverex/2.简单分析KEPServerEx框内的逻辑结构,关系是根据官方文档推测的,可能会有问题吧,个人理解; KEPServerEx可以把OT和IT连接起来; KEPServerEx提供web服务,则IT端不需要编写OPC Client,直接使用Http Client定期读取采集数据即可,比较方便; KEPServerEx作为mqtt client,把采集数.
2022-01-10 17:41:22 3107 1
原创 http auth www-authenticate 是否允许同时携带basic digest 两种认证方式
即client发起http请求,http server配置了http auth认证机制,由server选择返回具体的认证方式;server是否可以返回两种认证方式,basic和digest,由client来选择?可以,但不建议使用,会降低系统安全性,比如:中间人攻击参考:RFC 2617 HTTP Authentication:Basic and Digest Access Authentication...
2021-12-20 20:45:40 359
原创 mqtt keepalive / emq x broker 验证 client不发心跳后,server最大等待间隔
测试步骤:1. connect conack 成功;2. sub suback 成功;3. 不发送pingreq心跳包,等待超时,TCP通道被mqtt broker关闭,看多长时间被关闭;client: 192.168.22.42 使用netty,建立TCP通道后,发送mqtt协议报文server:192.168.22.46 部署 emqx-4.2.14使用mqtt broker:emq x 验证mqtt client keepalive = 60使用如下方...
2021-10-27 18:44:38 4405 2
原创 emqx: 配置项 allow_anonymous
问题场景:1. 配置emqx broker,auth http方式,auth微服务也启动 (本地windows emqx broker)client =(mqtt)=> emqx broker =(http)=> auth service2. client发送connect请求,emqx broker发送http请求到auth service,在auth service的鉴权接口中,打断点调试3. client配置的超时30s,超时后,emqx broker日志...
2021-08-13 23:06:19 1624
原创 shell: 过滤日志目录多个压缩文件 提取username字段 并去重
好记性不如烂笔头,mark一下:)场景:1. 日志目录中,每200M会压缩日志文件日志文件:auth.log.2021081201.1.gz2. 需要过滤所有压缩日志文件,过滤如下结构行,提取出username,并去重2021-08-13 10:13:30.898 [WARN ] [http-nio-8180-exec-13] [:] - clientid:d-1-11654987987987, username:11654987987987, token:ohSQE2b4J49fpW1
2021-08-13 20:40:55 348
原创 mqtt.fx 也是使用的eclipse paho mqtt client library
参考:https://github.com/eclipse?q=paho.mqtt&type=&language=&sort= 实现了各种语言的mqtt client library (java cpp c embedded-c golang python rust android c# js ruby d等)https://kunaly.blog.csdn.net/article/details/107492604 mqtt.fx使用http://...
2021-08-01 11:45:39 145
原创 delight-nashorn-sandbox JsSanitizer 第2环节,注入函数调用时,使用正则匹配可能导致死循环,进而线程CPU飙升
环境:java version "1.8.0_271"1. 现象JsSanitizer.java /** * The name of the variable which holds reference to interruption checking * class. To prevent collisions random suffix is added. */ final static String JS_INTERRUPTED_TEST = "__it"; p
2021-08-01 11:31:43 562
原创 Californium CoapStack 分析
Californium : Coap for java1. CoapEndpoint.java成员变量有CoapStack:/** The stack of layers that make up the CoAP protocol */protected final CoapStack coapstack; /** * Standard coap-stack-factory. * * This will be also the default, if no other
2021-07-25 11:46:40 151
原创 Californium CoapEndpoint UDPConnector 线程分析
1. CoapEndpoint: 绑定到成员变量coapStack: 业务层处理,使用线程池,对应CoapEndpoint中的executor 成员变量connector: 传输层处理,发送和接收消息,使用单独线程,对应UDPConnector中的Sender、Receiver2. 逻辑结构发送消息:使用了比较常用的设计方法,使用阻塞消息队列,隔离了coap协议层组装coap消息(即生产消息)、和只负责发送coap消息的Sender(即消费消息)UDPConnector中的se.
2021-07-22 20:15:33 292
原创 delight-nashorn-sanbox NashornDetection 兼容jdk nashorn和openjdk nashorn
版本:delight-nashorn-sandbox-0.2.01. delight-nashorn-sandbox流程:优先使用jdk中的nashorn 其次使用openjdk中的nashorn static { JDK_NASHORN_ScriptObjectMirror_CLASS = findClass("jdk.nashorn.api.scripting.ScriptObjectMirror", "JDK-provided Nashorn");
2021-07-16 11:47:49 2097 1
原创 delight-nashorn-sandbox JsSanitizer 分析
sanitizer: 防腐剂,消毒杀菌剂,洗手液 =》应该是指对js代码进行消杀检查循环语句,并插入函数调用,用来当js执行引擎线程被interrupt中断时,break当前脚本的执行版本:delight-nashorn-sandbox-0.2.0 (Java嵌入式js解析引擎的沙箱环境封装)1. 流程public方法只有secureJs,主要逻辑在secureJsImpl中格式化js代码 =》 对应beautifyJs (TODO格式化后,nashorn执行更快) 如...
2021-07-16 10:11:25 912
原创 一次网上考试,后端不校验试卷,只校验试题和答案
公司组织的一次网上非技术方面的开放考试,有10张试卷,试题比较多,都是选择题,应该是有题库;考了几张试卷后,向看看评卷后台有没有漏洞:1. firefox2. 提交试卷时,post方式,明文,包含token、exams、activityUserId、activityid、challengeAgainOneLevel、currentNumber等每次提交,只有字段exams、currentNumber变化(token等不变)=》说明有可能是不校验试卷的currentNumber为试
2021-07-14 19:54:48 279
原创 mqtt $SYS (系统)主题
1. 如果client订阅主题 #,+/device 等,server进行匹配转发时,不会把以 $ 字符开头的topic,匹配上,( 即以$开头的topic是特殊的topic,包含 $SYS/ )举例:以emqx为例,client订阅#,(即使连接的是11883端口),也不会收到 $ 字符开头的topic,比如$SYS/brokers/emqx@127.0.0.1/clients/be4caaa199747b94ccfb7d/connected ,需要单独订阅2. $SYS/ 前缀topic,...
2021-06-25 22:19:18 1871
原创 java 嵌入式js解析引擎 nashorn ,jjs
jjs 可以调用js nashorn engine位置:jdk1.8.0_271\bin\jjs.exejjs --language=es5 -strict=true 注意optionsjjs --language=es6交互在es5下,使用es6语法中的let,报错直接执行脚本jjs --language=es5 -strict=true test.jstest.jsvar array1 = new Array();array1[0] = 'aa...
2021-06-25 17:17:07 624
原创 iphone js websocket wss server端证书过期,导致client连接失败
问题:同样的js websocket wss代码,在Android上可以,在iPhone上报错(iPhone是2021升级系统后,不行的)onerror回调方法:{"isTrusted":true}onclose回调方法:1006代码:function createWebSocket() { if(!window.WebSocket) { console.error("browser not support websocket"); mui.to...
2021-03-28 22:46:20 1805
原创 emqx: 下载、修改、编译emqx / emqx_lwm2m
跟上篇https://blog.csdn.net/yhtppp/article/details/1137739491、方法一cd emqx-relmake clean =》会删除_build目录中下载的所有代码make =》重新下载代码,编译,GitHub网络不稳定,下载会比较耗时2、方法二(推荐)cd _build【删除所有的中间文件:beam app so (appup可以不管)】find . -name "*.beam" | xargs rm -rf...
2021-03-22 15:40:37 498
原创 在arm64 kylin上编译emqx broker
环境:Linux host 4.19.90-9.ky10.aarch64 #1 SMP Sun Apr 26 11:05:59 CST 2020 aarch64 aarch64 aarch64 GNU/Linuxgcc (GCC) 7.3.0GNU Make 4.2.1 为 aarch64-koji-linux-gnu 编译1、安装erlanghttp://erlang.org/documentation/doc-9.1/doc/installation_guide/INSTALL...
2021-02-09 23:23:23 966
原创 雪花算法 学习
场景:分布式ID,全局唯一优点:全局唯一,递增,并发高,索引效率高缺点:严格依赖系统时间bit description1 不用,默认为0,整体表现为正整数41 timestamp,毫秒,即时间戳10 工作机器id(5+5,机房id,机器id) dataCenterId + workerId(由zookeeper负责)12 sequence,序列号,某个机房某台机器某个服务**上,这一毫秒内同时生成的id的序列号,毫秒...
2021-02-08 11:20:04 138
原创 js 移位运算符 只支持32位
console.log("shift result: " + (Math.pow(2, 32) >>> 1));// 0移位操作之前,会把操作数转换为32有符号整型,然后再做移位操作;所以,操作数,高于30位的部分,会被截掉;TODO 官方描述参考:https://blog.csdn.net/u014322206/article/details/84745987https://developer.mozilla.org/zh-CN/docs/Web/J...
2021-02-04 17:40:38 553
原创 VirtualBox 安装centos7 NAT模式 / 桥接模式 上网
VirtualBox 6.1.8CentOS-7-x86_64-DVD-1708.iso宿主机本地网卡地址:192.168.21.331、下载安装VirtualBox2、安装虚拟机CentOS73、【配置NAT模式上网】=》全局设定,网络,添加 新的NAT网络启用DHCP,后续虚拟机就不需要配置静态地址=》配置虚拟机的网络,启用网络连接,连接方式选择“NAT网络”,界面名称选择刚才创建的“NatNetwork”,其他默认=》启动ll /etc/
2021-02-04 15:45:02 747
原创 使用openssl生成证书,emqx tls 双向认证
1、生成 CA 自签名证书openssl genrsa -out certs/root-ca.key 2048 生成私钥openssl req -new -x509 -days 365 -config ./openssl.cnf -key certs/root-ca.key -out certs/root-cacert.pem -subj "/C=CN/ST=NANJING/O=EMQ/CN=RootCA" 生成证书,pem文件,包含公钥和一些其他信息openssl ...
2021-01-12 21:02:08 514
原创 tls双向认证错误:java.security.cert.CertificateNotYetValidException: NotBefore: Tue Jan 12 19:18:08 CST 202
接上一篇1、在虚拟机centos 7上,创建证书,配置EMQX,并启动,IP=192.168.21.46没有做时间同步,注意:NotBefore时间2、宿主机,windows ,IP=192.168.21.33做了时间同步,和上面虚拟机时间不一致,client时间比server时间,要早几个小时;导致,使用MQTT.fx,连接虚拟机上的emqx server时,双向认证,client验证server的证书,发现client当前时间,比server证书的notBefore时间还要早,报
2021-01-12 21:00:57 3917
原创 ThreadPoolExecutor 初步分析
1、包 java.util.concurrent.ThreadPoolExecutor2、继承层次3、ctl =》巧妙ctl共32位,高3位存储runState,表示线程池的状态,值域中包含8个,目前使用了5个,分别是 RUNNING, SHUTDOWN, STOP, TIDYING, TERMINATED 低29位存储workerCount,目前支持最大线程数量=2^29-1由于workerCount在低29位,并且巧妙利用计算机补码特性,(...
2021-01-03 23:05:44 63
原创 spring boot 源码学习 构建工具 maven => gradle
1、https://github.com/spring-projects/spring-boot/tree/v2.2.4.RELEASEhttps://github.com/spring-projects/spring-boot/tree/v2.2.2.RELEASEhttps://github.com/spring-projects/spring-boot/tree/v2.2.0.M...
2020-02-19 11:14:31 457
原创 bootstrap table 导出Excel,日期精确到秒
环境:bootstrap 3bootstrap table 1.5.5 (功能挺强大的)1、代码HTML <div style="height: 100%;"> <div id="div-toolbar"> </div> <table id=...
2020-01-02 11:05:40 638
转载 robocode 安装 使用
记录一下环境:Windows 7 64JDK 1.8.0_131一、安装1、下载https://robocode.sourceforge.io/当前最新版本:robocode-1.9.3.6-setup.jar2、安装双击robocode-1.9.3.6-setup.jar默认安装在C盘,并创建桌面快捷方式;3、验证双击 roboco...
2019-05-20 15:54:21 3350 5
转载 使用NetBeans 海康威视 SDK 二次开发
环境:Windows 7 641、安装NetBeans IDE 8.2https://netbeans.apache.org/download/index.htmlhttps://netbeans.org/downloads/8.2/可以选择全量版本;如果本地已经安装JDK,在安装NetBeans时,选择本地已经安装JDK的路径即可;(如果系统是64...
2019-05-08 17:46:54 1951
转载 groovy 安装配置
记录一下;环境:Windows 7apache-groovy-sdk-2.5.6.zip1、下载https://groovy.apache.org/download.html默认download,下载的是sdk bundle,优先选择这种形式吧;解压到D:\groovy-2.5.62、配置环境变量GROOVY_HOME =D:\groo...
2019-04-17 15:43:01 289
转载 idea 远程部署、调试tomcat
idea 部署web工程 到 远程tomcat服务器上,并调试,记录一下;环境:CentOS 7.6Tomcat 8.5.34 / 8.5.39 / 9.0.12IDEA 2018.11、配置tomcattomcat服务器的IP地址:10.132.12.25tomcat目录位置:/usr/local/apache-tomcat-8.5.34conf/se...
2019-04-09 17:28:40 1631
转载 PhpStorm + WampServer 开发环境配置
PhpStorm + WampServer 开发环境配置,记录一下环境:Windows 7 64PhpStorm 2018.1.7WampServer 3.1.71、1.1、下载安装WampServerhttp://www.wampserver.com/https://sourceforge.net/projects/wampserver/安装目录:D:\wam...
2019-04-02 15:42:50 3347
《人月神话》软件工程pdf
2011-08-24
VC++专卖店进销存小系统
2009-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人