自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Heartsuit的博客

Keep it simple and stupid. https://heartsuit.github.io/

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

原创 使用友盟+的APM服务实现对移动端APP的性能监控

背景对于信息系统服务,一般我们的重点监控对象都是核心的后端服务,通常会采用一些主流的APM(Application Performance Management)框架进行监控、告警、分析。那么对于移动端的APP、小程序的运行时状态如何进行实时监控与分析呢?经过这次CSDN官方的推荐,友盟+提供的APM服务可以实现我们的这一目标,下面我们就尝试集成体验下友盟+提供的这款APM服务。由于我们的 APP 是基于华为的鸿蒙操作系统进行开发,而注册友盟后,发现当前对于移动端APP,友盟官方提供了 Androi

2021-10-21 11:36:45 30

原创 12-TDengine数据迁移:导入与导出

背景对于数据库的运维,免不了数据迁移,对数据库表进行导入与导出; TDengine 官方提供了各类数据导入、导出方式。下面就体验下不同的导入、导出方法。数据导出:taosdumpcsv数据导入:sourcecsvtaosdump数据导出数据导出:taosdumptaosdump主要参数含义:-o:指定输出文件的路径。文件会自动生成。-u:用户名。-p:密码。-A:指示导出所有数据库的数据。-D:表示指定数据库。-i:表示输入目录。-s:表示导出s

2021-09-24 08:32:47 138

原创 11-TDengine集成EMQX:通过规则引擎实现设备数据直接入库

背景曾使用过 IoTDB 自带的 MQTT Broker 实现了设备数据入库,那么使用 TDengine 时,我们可以借助 EMQX (一款优秀的国产开源 MQTT Broker )的规则引擎结合 TDengine 的 RESTful API 完成设备数据的路由与入库。用到的工具TDengine RESTful APIEMQX 规则引擎TDengine GUI图形化管理工具Node.js下的MQTT客户端虚拟机CentOS操作系统版本信息TDengine: 2.2.0.0E

2021-09-23 12:50:09 27

原创 虚拟机的IP经常变化

背景以前装了虚拟机后,一开始设置的是动态IP, dhcp 的,好长时间没用了;最近重新开始使用虚拟机了,一开始IP是 192.168.169.128 ,然后就三天两头的变化,每次变化都增加1,这过了大概一星期,IP已经变到了 192.168.169.131 ,就想着看怎么把这个IP固定下来。环境[root@hadoop1 local]# cat /etc/redhat-releaseCentOS Linux release 7.8.2003 (Core)[root@hadoop1 local]

2021-09-18 08:41:51 900

原创 Linux执行date命令发现差了12小时,格式是EDT

背景新建了个虚拟机, CentOS7 操作系统,执行 date 命令发现日期不正确,与当前时间差了12小时,格式是 EDT 。使用 NTP (Network Time Protocol)同步后,依然不正确。# 实际时间 2021年7月26日12:50:38[root@hadoop2 ~]# date2021年 07月 26日 星期一 00:50:47 EDT# NTP时钟同步[root@hadoop2 ~]# ntpdate ntp1.aliyun.com26 Jul 00:51:16 n

2021-09-17 08:35:13 14

原创 10-TDengine之SpringBoot读取的时间与数据库中存储的时间相差8小时

背景一开始的配置内容如下,重点关注数据库连接时的 timezone ,这也是 TDengine 官方集成 MyBatisPlus 时的 demo 里的配置方式;spring: datasource: driver-class-name: com.taosdata.jdbc.TSDBDriver url: jdbc:TAOS://hadoop1:6030/iot?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8 us

2021-09-16 14:11:01 82

原创 9-TDengine低版本分页offset出现bug,如何平滑升级版本、迁移数据

背景为什么要对 TDengine 进行升级?从一开始使用 TDengine 就选了当时最新的版本 2.1.2.0 ,这个版本应该也不算旧了。不过今天在使用其分页功能查询表时,发现了一个问题, TDengine 毕竟是一款新的数据库,有问题也很正常。[root@hadoop2 ~]# taos --versionversion: 2.1.2.0问题复现前端页面点击不同页码后,表格的数据不变。。。使用 SpringBoot 集成了 TDengine , MyBatisPlus 后,在对一些表中

2021-09-10 15:12:05 71

原创 8-TDengine里用的好好的字段名,却被MySQL狠狠上了一课

背景使用 TDengine 集成 MyBatistPlus 后,对我自己建的数据表进行分页查询时闪退,同时有条信息: Process finished with exit code -1073741819 (0xC0000005) 。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hRjFLf1o-1631184558525)(https://github.com/heartsuit/heartsuit.github.io/raw/master/pictures/2021-

2021-09-09 18:56:19 21

原创 14-SpringSecurity:前后端分离项目中用户名与密码通过RSA加密传输

背景登录认证几乎是所有互联网应用的必备功能,传统的用户名-密码认证方式依然流行,如何避免用户名、密码这类敏感信息在认证过程中被嗅探、破解?这里将传统的用户名、密码明文传输方式改为采用 RSA 的非对称加密算法密文传输,即使认证请求被网络抓包,只要私钥安全,则认证流程中的用户信息相对安全;一般是生成RSA的密钥对之后,公钥存储在前端或后端(登录时每次请求后端返回公钥)进行加密,私钥存储在后端用于解密;曾在实际的应用中看到过动态生成密钥对的做法,即公钥-私钥都是动态生成,每次请求都不一样,这与固定公

2021-09-02 10:58:02 101

原创 7-TDengine集成Grafana实现日志数据可视化

背景目前我们已经使用 TDengine 存储了大量的数据,这些数据一般要求以各种方式呈现给用户或者统计后传给上层业务。作为一款时序数据库,非常适合存储结构化的日志数据,类似于 InfluxDB , TDengine 可以方便地与 Grafana 进行集成,整个过程无需任何代码开发, TDengine 中数据表的内容可以在仪表盘上进行可视化展现。这次我们先以 TDengine 自行记录的日志以及官方提供的 tdengine-grafana.json 数据屏来演示。Note: TDengine 2.1.2.

2021-08-02 08:53:50 99

原创 6-TDengine集群体验:2台虚拟主机

背景之前的 TDengine 都是在单机上使用,因为 TDengine 已在2020年开源了其集群方案,那这次就来体验下 TDengine 集群。当前先使用两台虚拟机(第一台就是一直以来的单机版, FQDN 为hadoop1;第二台为新建的虚拟机, FQDN 为hadoop2),偶数台机器可能出现脑裂,所以 TDengine 还提供了个仲裁者 arbitrator ,这里先不配置,实际中通常使用奇数台机器来实现,下次使用3台(奇数台)容器体验集群;具体搭建步骤可参考官方文档,比较详细。主要步骤:停服

2021-07-31 09:35:12 93

原创 5-TDengine集成SpringBoot,MyBatis,MyBatisPlus

背景前面的体验中,用到了 taos 的客户端、 RESTful Connector 以及 JDBC-JNI 等连接方式,这次我们体验下更接近实际应用场景的示例: TDengine 与 SpringBoot , MyBatis , MyBatisPlus 等的集成。官方已经自带了示例, https://github.com/taosdata/TDengine/tree/develop/tests/examples/JDBC ;这些示例在安装的客户端目录也有: /usr/local/taos/example

2021-07-30 08:23:55 344 1

原创 4-TDengine图形化管理工具TDengineGUI与IDEA插件

背景前面都是使用命令行或者代码直接查看数据库表的数据,相对图形化界面工具来说不够直观,像我们通常使用的 MySQL , MongoDB 都有对应的图形化管理工具: Navicat 、 HeidiSQL 、 NoSQLBooster 等。而 TDengine 官方没有对应的工具,不过借助开源社区、第三方,我们多了些选择。基于Electron开发的跨平台TDengine图形化管理工具地址:https://github.com/skye0207/TDengineGUINote:这个图形化

2021-07-29 08:26:57 432

原创 3-TDengine竟然无法修改、删除数据?

背景没错! TDengine 在 SQL 层面并没有提供修改与删除操作的语句,即不存在 UPDATE , DELETE 语句。TDengine默认配置下数据不可更新!TDengine默认配置下数据存储10年!我们前面在体验 TDengine 基本功能时,仅涉及到数据库的创建、删除、数据表的创建、删除以及数据表的各类查询功能,那么我们通常说的数据表 CRUD (Create, Retrieve, Update, Delete),这里仅涉及到了创建与查询,那么更新和删除呢?我们从两个方面看待

2021-07-28 08:18:32 336

原创 2-TDengine客户端连接,RESTful,JDBC

背景上一篇的体验中,都是使用服务器本地的客户端连接后进行操作的,那么如何远程连接 TDengine 呢,比如:远程客户端,JDBC等。TDengine提供了丰富的应用程序开发接口,其中包括C/C++、Java、Python、Go、Node.js、C# 、RESTful等,便于用户快速开发应用。这里使用三种方式连接下远程的 taosd 服务:RESTful Connector;Windows远程客户端;JDBC-JNI;RESTful ConnectorRESTful Connector 是

2021-07-27 16:10:41 316

原创 1-TDengine安装与初体验

背景我们的项目涉及物联网相关业务,由于一开始的年少无知,传感器数据采用了 MySQL 进行存储,经过两年的数据累积,目前几个核心表单表数据已过亿,虽然通过索引优化、SQL优化以及读写分离等措施,勉强满足基本的查询,能在秒级给出数据;但是数据量还在持续增加,当面对用户多维度的统计需求,在实现上、效率上总是那么不尽如人意。。仰天长叹,难道只能走分库分表或者迁移历史数据、区分冷热温数据这两条不归路了吗?一次偶然的机会,了解到诸如 InfluxDB , TDengine 这类时序数据库,它们的差别这里不做对比

2021-07-27 16:06:36 195 5

原创 突然停电导致Nacos坏了。。

背景夏天来了,又到了开空调的季节。。然而,在一间小屋子里,几十台电脑附加空调,导致超负荷运转,突然跳闸断电了。。等来电后,发现 Nacos 坏了,启动失败。环境:Windows 7 下 Nacos 1.4.0问题排查这时最直接有效的办法应该是,重新解压,使用崭新的 nacos 即可;可是,目前 nacos 里已经有不少配置数据了,为了不丢弃这部分数据,便决定尽力挽救下,那就先看控制台报错信息吧。E:\nacos\bin>startup.cmd -m standalone...Cau

2021-06-30 21:55:10 143

原创 一键导出PostgreSQL数据库表设计为word文档

背景项目开始时,数据库表设计是从概要设计到详细设计,再到数据库中的表结构,有一套完整的文档;然而,随着项目的演进,需求的变更,导致数据库表结构发生了比较大的变化(加表,加字段,该类型等),对于大多数小公司的项目,由于项目管理流程的不规范,在这个时候大概率是数据库设计文档没有同步跟进而过时;现在,问题来了,出于各种原因吧,需要提供当前数据库的设计文档(总不能一张张表、一个个字段去手写吧。。);那么,怎么从现有的数据库表自动导出一个相对比较整齐的word文档呢?从网上看了下,有人提供了方案\(☆o☆)

2021-06-09 18:47:34 302 2

原创 在华为鲲鹏openEuler20.03系统上安装MySQL8

背景这里实验用的华为云鲲鹏服务器配置如下:Huawei Kunpeng 920 2.6GHz4vCPUs | 8GBopenEuler 20.03 64bit with ARM连接机器后,先查看系统相关信息,注意这里是 aarch64 的,后续软件包也需要是 aarch64 版本的。# 查看系统内核信息[root@ecs-kunpeng-0005 ~]# uname -aLinux ecs-kunpeng-0005 4.19.90-2003.4.0.0036.oe1.aarch64 #1

2021-06-06 16:04:40 295 4

原创 Ansible纸上谈兵03:Playbook

背景ad-hoc ,通过一次执行一行命令,可以实现简单的文件管理、软件包管理、服务管理等;但是如果想要多次执行一个任务,或者一次执行多个任务,那么 ad-hoc 就显得有点繁琐和力不从心了,这时候就轮到 Playbook 登场了。Playbook 是由 yml 语法书写,结构清晰,可读性强,可以简单将其理解为一门编程语言(本身具有变量、分支、循环、监听器的概念)。在一个 Playbook 中可以包含一组自动化任务,主要有以下部分:- hosts: group [

2021-05-23 21:13:40 49

原创 Ansible纸上谈兵02:常用模块

背景这里以 ad-hoc 命令的方式介绍下 Ansible 经常用到的模块。 Ansible 已经具备丰富的模块生态,我们可以借助 Ansible 的模块完成日常在 Linux 操作系统上的运维工作。一般常用的模块有:执行命令command(默认) shellNote: command , shell 本质上执行的都是基础命令(区别在于 command 模块不支持管道命令)管理安装包yum管理文件file copy get_url管理服务service管理用户

2021-05-22 18:36:18 67 2

原创 在华为鲲鹏openEuler20.03系统上安装Redis, Zookeeper, Nginx

背景这里实验用的华为云鲲鹏服务器配置如下:Huawei Kunpeng 920 2.6GHz4vCPUs | 8GBopenEuler 20.03 64bit with ARM连接机器后,先查看系统相关信息,注意这里是 aarch64 的,后续软件包也需要是 aarch64 版本的。# 查看系统内核信息[root@ecs-kunpeng-0005 ~]# uname -aLinux ecs-kunpeng-0005 4.19.90-2003.4.0.0036.oe1.aarch64 #1

2021-05-19 22:13:08 494 1

原创 在华为鲲鹏openEuler20.03系统上安装RocketMQ

背景这里实验用的华为云鲲鹏服务器配置如下:Huawei Kunpeng 920 2.6GHz4vCPUs | 8GBopenEuler 20.03 64bit with ARM连接机器后,先查看系统相关信息,注意这里是 aarch64 的,后续软件包也需要是 aarch64 版本的。# 查看系统内核信息[root@ecs-kunpeng-0005 ~]# uname -aLinux ecs-kunpeng-0005 4.19.90-2003.4.0.0036.oe1.aarch64 #1

2021-05-18 12:44:24 552 1

原创 在华为鲲鹏openEuler20.03系统上安装ElasticSearch

背景这里实验用的华为云鲲鹏服务器配置如下:Huawei Kunpeng 920 2.6GHz4vCPUs | 8GBopenEuler 20.03 64bit with ARM连接机器后,先查看系统相关信息,注意这里是 aarch64 的,后续软件包也需要是 aarch64 版本的。# 查看系统内核信息[root@ecs-kunpeng-0005 ~]# uname -aLinux ecs-kunpeng-0005 4.19.90-2003.4.0.0036.oe1.aarch64 #1

2021-05-17 18:31:43 163 1

原创 Ansible纸上谈兵01:认识一下Ansible

Why:为什么要使用Ansible当给你6台云主机,你应该怎么去使用,或者计划如何进行统一管理,完成微服务的自动化部署?作为一个未接触过服务集群部署的小白,第一次拿到鲲鹏的6台云主机(操作系统:OpenEuler20.03,各项软、硬件配置信息完全一致),其实是有点手足无措的。。难道还是像我们以前那样一台一台进行远程连接、配置、部署?如果只有两三台或者十来台机器,这样操作起来虽然比较繁琐但毕竟还可以接受,可以在预计的时间内完成配置与部署;可是如果集群扩大到数百台、数千台呢,若还是使用传统的运维方式就

2021-05-16 21:55:38 2785 2

原创 使用nvm管理不同版本的Node.js

背景有些项目是几年前写的,用的还是旧版的 Node.js ,现在的新项目需要版本较高的 Node.js 那么如何能同时让多个版本的Node共存呢?这时,Node Version Manager(nvm)可以排上用场,可管理多个不同版本的 Node.js 。下载安装先卸载已有的Node.js下载安装nvm下载:https://github.com/coreybutler/nvm-windows/releases解压安装:nvm-setup.zip使用nvm查看可下载的Node.js

2021-05-11 18:57:47 52

原创 Nginx反向代理网站,不带www访问域名,竟然返回了Hello Apache!

背景启动 Web 服务,配置好 Nginx 后,刷新配置,通过域名 abc.com 访问(没有写 www ),竟然返回了 Hello Apache! 。。系统版本root@iZuf69c5h89bkzv0aqfm8lZ:~# cat /proc/versionLinux version 4.4.0-62-generic (buildd@lcy01-30) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #83-Ubunt

2021-04-29 18:50:52 127

原创 在华为鲲鹏openEuler20.03系统上安装Ansible

背景这里实验用的华为云鲲鹏服务器配置如下:Huawei Kunpeng 920 2.6GHz4vCPUs | 8GBopenEuler 20.03 64bit with ARM连接机器后,先查看系统相关信息,注意这里是 aarch64 的,后面配置源时一定要匹配。# 查看系统内核信息[root@ecs-kunpeng-0001 ~]# uname -aLinux ecs-kunpeng-0001 4.19.90-2003.4.0.0036.oe1.aarch64 #1 SMP Mon Ma

2021-04-12 08:15:10 239

原创 解决Puppeteer内置的Chromium无法自动播放音频问题

背景以前做的一个基于 Wechaty 的客户端应用,最近更新个功能,涉及到提示语音的播放,由于要实现对附近人员的提醒,要求自动播放音频,可人工操作关闭。但是实际开发中,发现 Chrome 浏览器无法自动播放音频,经过查询,发现是 Chromium 本身做了限制。版本信息:wechaty@0.14.1,puppeteer: ^1.2.0;音频播放用的是jquery.jplayer.min.js;解决这里场景比较特殊, 这个客户端就在用户的一台电脑上使用,那么只要想法解决这个客户端的问题就行了。

2021-03-29 12:47:48 199

原创 Node.js的nrm报错:internal/validators.js:125 throw new ERR_INVALID_ARG_TYPE(name, ‘string‘, value);

背景又是换电脑引发的问题,为兼容几年前写的 Node.js 相关项目、客户端应用,换了新主机后,便选择安装相对旧点的 Node 版本: v10.24.0 。然而,全局安装了 nrm 依赖后,执行 nrm ls 报错:$ nrm lsinternal/validators.js:125 throw new ERR_INVALID_ARG_TYPE(name, 'string', value); ^TypeError [ERR_INVALID_ARG_TYPE]: The "path"

2021-03-28 13:11:01 1631 2

原创 VMWare开启虚拟机报错:此主机支持Intel VT-x, 但Intel VT-x处于禁用状态

背景换了台主机,想节省点时间,把之前的虚拟机文件直接拿过来,放到 VMWare 启动,然而,在开启虚拟机时报错了:此主机支持Intel VT-x,但Intel VT-x处于禁用状态。电脑基本信息我的电脑 X64 兼容 台式电脑操作系统 Windows 7 旗舰版 64位 SP1主显卡 独立显卡(对游戏和电影支持较好)IE浏览器 版本号 11.0基本硬件展示处理器 英特尔 Core i5-9400F @ 2.90GHz 六核主板 华硕 EX-B365M-V内存 16 GB (

2021-03-27 23:56:16 503

原创 解决CentOS6 Yum源失效问题

背景本来计划在一台 CentOS6 的机器上安装一些软件,发现 yum 根本执行不了。系统环境:[root@ecs-zfdevops-0001 nginx-1. 10. 2]$ cat /etc/redhat-releaseCentOS release 6. 10 (Final)更新repo配置# 养成好的习惯:若要修改配置,先备份。[root@ecs-zfdevops-0001 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d

2021-03-25 21:50:34 139

原创 openssl版本升级后,Nginx用的还是旧版的openssl

背景我只是想简单的配置下 HTTP2 ,没想到竟掉到了坑里。。应该是版本较旧的原因,在重新编译 Nginx 时遇到不少问题,这里做个记录。在上一篇Nginx配置开启HTTP2支持中已经升级了 OpenSSL ,但是查看 Nginx 版本信息后,发现还是用的旧版 OpenSSL ,此时,需要重新编译 Nginx 。环境[root@ecs-zfdevops-0001 nginx-1.10.2]$ cat /etc/redhat-releaseCentOS release 6.10 (Final)N

2021-03-17 18:14:23 500

原创 Nginx配置开启HTTP2支持

背景目前主流的HTTP/1.1标准,自1999年发布的RFC2616之后再未进行修订,实际生产中,想通过HTTP/2使得系统响应更快,顺便体验下这个较新的标准。借用下《图解HTTP》中的一句话:HTTP2的目标是改善用户在使用Web时的速度体验。Note:具体使用的HTTP版本可通过浏览器控制台查看。检测下自己的网站是否支持HTTP2:关于HTTP/2和HTTP/1速度对比环境要求Nginx的版本必须在1.9.5以上,该版本的Nginx使用http_v2_modu

2021-03-16 22:56:28 293

原创 nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf

背景Nginx 配置了 HTTPS ,启动报错:nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:42提示 Nginx 缺少 http_ssl_module 模块。解决查看现有模块nginx -Vconfigure arguments: --prefix=/usr/local/nginx --pid-path=/var/run/nginx/

2021-03-15 18:42:18 479

原创 我的MongoDB数据被黑客删库了,还勒索要支付比特币赎回

背景每当看到新闻说谁谁家服务又被黑客攻击了,谁家的数据又泄露了,基本上有一瞬间在脑海里会感受到“嗯,安全挺重要的”。讲真, MongoDB 数据泄露也已经是老生常谈了,然而,当这种事发生在自己身上的时候,这时的感觉还是很微妙的(岁月静好,突然!你的数据就没了(╥╯^╰╥)看似风平浪静,实则波诡云谲,暗流涌动),切身体会,心痛呀,对世上是否存在感同身受表示怀疑。。事情是这样的:前两天在一台云服务器上安装了 MongoDB ,为了方便测试,开放了默认的 27017 端口,并配置了可通过远程主机连接,也没有对

2021-03-06 16:53:17 864

原创 SpringBoot集成OAuth2.0的四种授权方式

背景OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。 OAuth2.0 是OAuth协议的延续版本,但不向后兼容 OAuth 1.0 ,即完全废止了 OAuth1.0 。很多大公司,国外的如Google,Netflix,Microsoft等,国内的像ByteDance,Alibaba,Tencent等都提供了OAuth认证服务(开放平台),这些都足以说明OAuth标准逐渐成为开放资源授权的标

2021-02-21 20:51:05 952

原创 这一年,这些书:2020年读书笔记

Note: 以下 markdown 格式文本由 json2md 自动转换生成,可参考JSON转Markdown:我把阅读数据从MongoDB中导出转换为.md了了解具体的转换过程。面纱作者:毛姆[英]ISBN:9787210082835出版社:江西人民出版社出版日期:2016-04-01图书标签:毛姆,小说,英国文学,英国,外国文学豆瓣地址:https://book.douban.com/subject/26757680/阅读日期:2020-01-19读书笔记威廉·萨默塞特·毛姆(

2021-01-29 08:06:08 11470

原创 JSON转Markdown:我把阅读数据从MongoDB中导出转换为.md了

背景前几年(2015~2018)都是手动直接将笔记(不含图书详情:封面、ISBN、出版信息等)发布,看到大家最近都在做自我复盘,今天突然有个想法:把阅读笔记做成 Markdown 格式的,这时就需要进行简单的数据处理,即: JSON 数据转换为 Markdown 。打开浏览器,在Github直接发现大神们已经造好的轮子:json2md。文档一看就明白了,而且最关键的是还可以自行扩展,厉害了!!输入数据源:json文件我平时的读书笔记专门记录在一个小Web网站上,每读完一本书,相关的图书信息、笔记

2021-01-28 22:38:25 450

原创 13-SpringSecurity:OpenID与Keycloak

背景本系列教程,是作为团队内部的培训资料准备的。主要以实验的方式来体验 SpringSecurity 的各项Feature。目前 SpringSecurity 新版本除了实现对 OAuth2.0 的支持外,还支持 OpenID 及 SAML 。果然,Spring Security不仅是一个功能强大且可高度自定义的身份验证和访问控制框架,它还是保护基于Spring的应用程序的事实标准。SpringSecurity 本身提供了 GOOGLE GITHUB FACEBOOK OKTA 的 OAu

2021-01-27 22:57:15 452 3

led-banner 0.0.2.rar

基于Electron,Vue实现的跨平台电子横幅桌面应用。

2021-05-18

electron-v1.6.6-win32-x64.zip

electron安装时,在node install.js,下载electron-v1.6.6-win32-x64.zip文件时因超时而失败。 到网上手动下载electron-v1.6.6-win32-x64.zip,放至C:\Users\[用户名]\.electron下,然后通过`npm install -g electron@1.6.6`指定版本安装即可。但在github的这个地址下载时速度超慢,总是失败,所以上传至CSDN,方便下载。 安装完electron后,git clone官网的Demo,进入Demo文件夹,在空白处按Shift+鼠标右键,选择‘在此处打开命令窗口’,并执行`npm start`或`electron .`启动程序

2017-05-08

空空如也

空空如也

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

TA关注的人 TA的粉丝

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