- 博客(1988)
- 资源 (267)
- 收藏
- 关注
原创 使用 sync_sso 同步 DiscourseConnect 用户数据 [Java]
最近有一个使用 SSO 把已有的用户同步到 Discourse 的需求。所以,我就根据官方针对 PHP 实现()写了一个有关 Java 的实现。实现的方法很简单,但是需要用到一些额外的包,最重要的是 Apache commons codec 和 Okhttp。Apache commons codec 是用来生成数字签名的,Okhttp 是用来发送 Http Post 请求的。
2024-05-24 11:29:00 193
原创 Discourse Discover 添加你的网站到 Discourse 官方
discourse discover 应该允许你把你的 Discourse 实例添加到 Discourse 的 https://discover.discourse.org/ 页面中。直接在你网站的配置上搜索 Discourse Discover ,余下的工作就可以交给 Discourse 了。还没有选的,可以马上选上喔。但显然排序肯定不会在第一页。discourse discover 应该允许你把你的 Discourse 实例添加到 Discourse 的。还没有选的,可以马上选上喔。
2024-05-24 11:28:20 213
原创 Discourse 中可能使用的 HMAC 算法 Java 实现
在 DiscourseConnect 中,对数据的签名使用的是 HMAC 算法。实际使用的算法为 HmacSHA256。Java 生成签名的方法很简单。Discourse 中可能使用的 HMAC 算法 Java 实现 - Discourse - iSharkFly。在 DiscourseConnect 中,对数据的签名使用的是 HMAC 算法。HmacUtils 工具类是 Apache Commons Codec 提供的。实际使用的算法为 HmacSHA256。Java 生成签名的方法很简单。
2024-05-24 11:18:26 249
原创 Discourse 使用 DiscourseConnect 调用接口 admin/users/sync_sso 422 错误
但是,在我们的代码中是设了值的。不知道为什么会出现上面的错误提示信息。
2024-05-24 11:09:39 174
原创 Discourse 使用 DiscourseConnect 调用接口 admin/users/sync_sso 404 错误
在对用户数据通过 SSO 同步的时候,调用提示 404 错误。我们使用的是 Java 的代码。如上图,返回显示的代码为 404。
2024-05-24 11:00:47 273
原创 Discourse 使用 DiscourseConnect 来进行用户数据同步
我们都知道 Discourse 的用户管理和设置都高度依赖电子邮件。如果 Discourse 没有设置电子邮件 SMTP 的话,作为管理员是没有办法对用户邮箱进行修改并且通过验证的。可以采取的办法是通过 Discourse 的 DiscourseConnect 来进行用户同步。根据官方的说法:使用 DiscourseConnect 对 用户邮箱进行修改是不会对邮箱的合法性进行校验的,默认的情况下是你已经对用户邮箱进行校验了。
2024-05-22 20:25:16 703
原创 Discourse 编辑没有办法显示更多的 JS 错误
HighUI bugs昨天升级的时到最新版本的时候就发现有这个错误,是 JS 的错误。发了一个帖子到官方的网站上,官方说可能是插件的问题。但是我们实在是没有安装什么插件呀?
2024-05-22 19:08:37 632
原创 Unifi AP Mesh 组网
最近家里的 AP 总是自动调整为 Mash 组网。因为有 AP 控制器,本来就设置为 AC+AP 方案,但是 AP 自己的默认配置为 Mesh 组网,结果就导致网络没有使用 AC。
2024-05-21 02:50:29 265
原创 Discourse 升级时候 500 错误
在对 Discourse 升级的时候,得到系统的错误:这个错误比较诡异,直接就 500 错误了,没有办法查看其他的提示信息。后来通过服务器上的日志,我们看到:看这个情况应该是没有安装成功。
2024-05-17 23:07:32 609
原创 Roboto 替代:Helvetica Neue
Roboto 由 Google的Christian Robertson设计,是一种新怪诞的无衬线字体家族,具有某种程度的双重性。因此,这款字体可以使文本具有自然的阅读节奏。Roboto 由 Google的Christian Robertson设计,是一种新怪诞的无衬线字体家族,具有某种程度的双重性。尤其对大的集团喝公司来说,这个事情都被仔细盯着的,所以上层就要求把网站使用的字体全部换成开源可以使用的。这个字体是商业授权字体,如果没有拿到商业授权的话,这个字体是不可以随便在网站上使用的。
2024-05-17 22:58:22 456
原创 Docker 的 RHEL 操作系统镜像
CentOS和Fedora都是基于Redhat的常见 Linux 分支。CentOS是目前企业级服务器的常用操作系统。Fedora则主要面向个人桌面用户。CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是linux的一个发行版本。CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于源代码编译而成。由于CentOS与。
2024-05-15 03:50:43 1005
原创 Docker 使用 CentOS 镜像
使用 docker run 直接运行 CentOS 7 镜像,并登录 bash。C:\Users\yhu>docker run -it centos:centos7 bashUnable to find image 'centos:centos7' locallycentos7: Pulling from library/centos2d473b07cdd5: Pull completeDigest: sha256:be65…从镜像的发布日期来看,CentOS 的版本已经有多年没有更新了。
2024-05-14 23:36:21 421
原创 Docker 使用 Fedora 镜像
Fedora 在 Docker 中的使用也非常简单,直接使用命令 docker run -it fedora:latest bash 就可以 pull 到本地的容器中并且运行。因为 CentOS 的版本已经不再提供支持了,如果还想使用 RHEL 的版本的话,Fedora 可能目前可以选择的一个版本部署到服务器上。Docker 使用 Fedora 镜像 - 系统容器 - iSharkFly。Fedora 在 Docker 中的使用也非常简单,直接使用命令。就可以 pull 到本地的容器中并且运行。
2024-05-14 23:01:28 474
原创 Docker 的 Ubuntu 操作系统镜像
Debian是由GPL和其他自由软件许可协议授权的自由软件组成的操作系统,由Debian 计划(Debian Project)组织维护。Debian 计划是一个独立的、分散的组织,由3000人志愿者组成,接受世界多个非盈利组织的资金支持,提供支持并持有商标作为保护机构。Debian以其坚守Unix和自由软件的精神,以及其给予用户的众多选择而闻名。现时Debian包括了超过25,000个软件包并支持12个计算机系统结构。Debian作为一个大的系统组织框架,其下有多种不同操作系统核心的分支计划,主要为采用。
2024-05-13 09:58:24 816
原创 Busybox 在 Docker 中的部署和启动
如果只说是大小来说,Alpine 也大不了多少,但 Alpine 提供了更多的功能。这也就是为什么 Docker 官方切换到 Alpine 的原因。
2024-05-13 00:31:32 229 1
原创 Docker 的 Busybox 操作系统镜像
BusyBox是一个遵循GPL协议、以自由软件形式发行的应用程序。Busybox在单一的可执行文件中提供了精简的Unix工具集,可运行于多款POSIX环境的操作系统,例如Linux(包括Android)、Hurd、FreeBSD等等。由于BusyBox可执行文件的文件比较小,使得它非常适合使用于嵌入式系统。作者将BusyBox称为“嵌入式Linux的瑞士军刀”。
2024-05-13 00:20:57 969 1
原创 Docker 直接运行一个 Alpine 镜像
如果再加个 JDK 那可比这个大多了,操作系统的大小还不如一个 JDK。由于镜像很小,下载时间往往很短,读者可以直接使用。如果通过容器管理查看容器的大小,也只有 50MB。
2024-05-12 22:27:31 348
原创 Junit 测试中如何对异常进行断言
本文对在 Junit 测试中如何对异常进行断言的几种方法进行说明。如果你使用 Junit 5 的话,你可以直接使用 assertThrows 方法来对异常进行断言。 代码如下:使用 AssertJ使用 AssertJ ,你可以有不少方法进行选择。我们尝试使用 assertThatThrownBy 和 assertThatExceptionOfType 2 个方法。这 2 个方法的写法有点不一样,但是整体效果是差不多的。考察如下代码:上面代码中,对有关断言的使用进行了一些说明。Junit 测试
2024-05-06 21:26:12 509
原创 Apache.commons.lang3 的 isNumber 将会在 lang 4 的时候丢弃
在判断输入的字符串是不是一个数字的时候,我们通常用的最多的方法就是 :但是这个方法将会在 Lang 4.0 版本中被丢弃。可以使用的替代方法为:通过查看源代码,我们可以看到 isNumber 也是调用 isCreatable 方法的。isCreatable 方法首先是对输入的字符串拆分成字符,然后对每一个字符进行判断,以确定输入的字符串是不是数字,是不是可以将 String 转换为数字类型。通过上面的方法,我们看到判断的方法还是有点复杂的。Apache.commons.lang3 的 isNumber
2024-05-06 21:25:52 428
原创 Hibernate 元数据模型(MetaModel)提示类没有找到错误
在进行一次编译的时候,提示下面的错误信息:正在上传…重新上传取消如果你对 Hibernate 的元数据还是不非常了解的话,请参考文章: JPA 的 Metamodel 中的内容。有关元数据生成器中的内容,请参看官方的:JPA Static Metamodel Generator这里有几种使用方法:我们使用了第一种的 Maven 配置方法:在我们的项目中和 lombok 的插件编译方法冲突了。需要将上面的配置方法通过 来进行配置。修改后的配置如下:然后再次编译和运行项目,上面的错误就解决了。通常
2024-05-06 21:25:18 327
原创 Discourse 清理存储空间的方法
主要是因为 Docker Image 的问题,如果升级次数越多,空间占用越多。Discourse 使用一段时间以后会发现硬盘空间占用非常多。能够帮助你清理 Discourse 占用的空间。帮助你清理了超过 20 G。这个命令可以没事运行下。...
2024-05-06 21:24:44 336
原创 Jackson 中使用 Optional
在本文中,我们会对 Optional 类进行一些说明,并且会解释下如果在使用 Optional 类的时候可能在 Jackson 中进行序列化和反序列化的过程中出现的问题。针对上面的问题,本文会将会介绍在 Jackson 中如何处理 Optional 对象,和如果 Optional 对象可能出现潜在的 Null 的解决方案。随后让我们来定义一个 Book 对象,在 Book 对象中,我们有一个使用 Optional 的字段。
2024-05-06 02:22:18 1116
原创 JDK 17有可能代替 JDK 8 吗
JVM 有 OpenJ9。很多公司可能会用 IBM 的版本。不好说,去 Oracle 化是很多公司逐步推进的政策。JDK 太基础了,决定了后面的很多 jar 的版本。JDK 这东西,能用就不会升级。
2024-05-06 02:07:59 665 1
原创 H2 数据库的 expected “identifier 错误
针对表的命名没有绝对的统一的说法,但是针对一个公司或者一个项目,最好使用统一命名的标准。对表进行一些系统性的区分,能够让我们更好的区分用途。例如:系统表(S_)可以用来定义系统的基本信息,更多是元数据等,这些数据是有关于系统运行的,通常例如可以定义 系统用户表(S_USER)、系统角色表(S_ROLE)等。这样可以有效的避免关键字冲突。很多时候,可能觉得这个是不是有点麻烦呀,很多项目可能不会超过几百个表。
2024-05-05 09:29:03 353
原创 Java Jackson-jr 库使用介绍
Jackson-jr 是一个轻量级的Java JSON 处理库。这个库被设计用来替代 Jackson 的复杂性。对比 Jackson 的复杂 API,Jackson-jr 的启动速度更快,包大小更小。虽然Jackson databind(如ObjectMapper)是通用数据绑定的良好选择,但它的占用空间(Jar包大小)和启动开销在某些领域可能存在问题:比如移动端,特别是对于轻量使用(读或写)。这种情况下,完整的Jackson API是让人接受不了的。
2024-05-04 01:56:21 1036
原创 Jackson-jr 对比 Jackson
简单点来说就 Jackson-jr 是Jackson 的轻量级应用,因为我们在很多时候都用不到 Jackson 的很多复杂功能。如我们用不到什么复杂的功能,并且使用了 Jackson-jr 能够满足你的项目使用的话,就直接使用 Jackson-jr 即可。如发现 Jackso…如我们用不到什么复杂的功能,并且使用了 Jackson-jr 能够满足你的项目使用的话,就直接使用 Jackson-jr 即可。如发现 Jackson-jr 没有办法满足你的所有需求的时候,可以再切换到传统的 Jackson 包。
2024-05-04 01:50:00 574
原创 Java Jackson-jr 库是干什么用的
Jackson-jr 是一个轻量级的Java JSON 处理库。这个库被设计用来替代 Jackson 的复杂性。对比 Jackson 的复杂 API,Jackson-jr 的启动速度更快,包大小更小。虽然Jackson databind(如ObjectMapper)是通用数据绑定的良好选择,但它的占用空间(Jar包大小)和启动开销在某些领域可能存在问题:比如移动端,特别是对于轻量使用(读或写)。这种情况下,完整的Jackson API是让人接受不了的。
2024-05-04 01:48:54 599
原创 Java 项目编译提示 --release 错误
提示的错误信息: INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project core-java…在我们的项目编译的时候添加了 --add-exports 参数。
2024-05-02 10:00:46 416
原创 键盘更新计划
作为 IT 搬砖人,一直都认为键盘没有什么太大关系。每次都是公司发什么用什么。但随着用几年后,发现现在的键盘经常出问题,比如说调节音量的时候通常莫名其妙的卡死,要不就是最大音量要不就是最小音量。按键 M 不知道什么原因巨难按下去,有时候还感觉莫名其妙的卡在哪里。回想这么多年,用的都是 104 键,一直没有来得及用什么比较好的机械键盘,随后发现键盘这东西就应该是生产力工具,不好的键盘确实有点感觉影响心情,遂决定换个键盘。
2024-05-01 10:52:56 1602 1
原创 Java Maven 编译资源文件拷贝错误 dirCompressed.zip failed with MalformedInputException:
完整的错误信息为: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:resources (default-resources) on project core-java-io: filtering C:\WorkDir\Repository\iSharkfly-Docs\java-tutorials\core-ja…出现上面错误的原因是在资源文件进行拷贝的时候的校验问题。
2024-05-01 09:36:24 725 1
原创 Java image-processing 包依赖错误
错误的信息为: [ERROR] Failed to execute goal on project image-processing: Could not resolve dependencies for project com.ossez:image-processing:jar:0.0.2-SNAPSHOT: Failed to collect dependencies at org.openimaj:core-image:jar…这个包的仓库地址为:ICM Repository (
2024-05-01 09:30:59 703
原创 Java 使用 Maven 编译时插件提示 拷贝错误
提示的具体信息为: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:resources (default-resources) on project core-java-8: filtering C:\WorkDir\Repository\iSharkfly-Docs\java-tutorials\core-jav…检查属性文件的编码格式,需要修改为 UTF-8 编码。
2024-05-01 09:24:53 769
原创 创建基于时间的 UUID
在本文中,我们将会 对 UUIDs 和基于时间的 UUIDs(time-based UUIDs) 进行一些探讨。当我们在对基于时间的 UUIDs 进行选择的时候,总会遇到一些好的方面和不好的方面,如何进行选择,也是我们将要简要探讨的内容。同时我们还会对可能会使用类库进行一些比较和探索,以便于我们更好的做出选择。
2024-04-29 01:22:37 349
原创 Java 中将 UUID 存储为 Base64 字符串
使用 Base64 编码来对 UUID(Universally Unique Identifiers) 存储在一些特定的场合被广泛的使用。使用 Base64 对比直接使用 UUID 进行存储来说能够更多的节约空间。
2024-04-28 00:21:49 1168
原创 Java UUID 类中的 getMostSignificantBits 和 leastSignificantBits 方法
getMostSignificantBits() 方法的一些介绍: getMostSignificantBits 这个方法主要用于在 UUID 中获取高64 位的有效位后返回 Long 数据类型。在获取最高有效位时不会引发异常。这个方式是从 UUID 中获取低 64 位的有效位返回 Long数据类型。getMostSignificantBits 这个方法主要用于在 UUID 中获取高64 位的有效位后返回 Long 数据类型。这个方式是从 UUID 中获取低 64 位的有效位返回 Long数据类型。
2024-04-27 23:22:40 237
Innodb 和 XtraDB 结构和性能优化
2013-09-28
MySQL Galera 集群
2013-09-28
MySQL 内存分析
2013-09-28
MariaDB 初学者指南
2013-09-28
合并到 XtraDB 存储引擎集群
2013-09-27
TokuDB 高科扩展性 MySQL 和 MariaDB 数据库
2013-09-26
SkySQL MariaDB 云数据组件
2013-09-24
MariaDB Cassandra interoperability Cassandra Storage Engine in MariaDB
2013-09-24
创建基于时间的 UUID
2024-04-29
2021 年一次比较奇葩的 AWS 面试
2024-04-29
2021 疫情期间美国公司技术岗的面试流程
2024-04-29
Java 在 JEP 12 提供的特性预览
2024-04-28
Java 中将 UUID 存储为 Base64 字符串
2024-04-28
Confluence 6 整合到其他数据库
2018-06-05
logback 介绍
2014-12-05
介绍 Percona 服务器 XtraDB 和 Xtrabackup
2013-09-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人