10 2020 档案
摘要:在修改表的时候会得到下面的提示,修改表需要删除后重建。 解决办法 在 SQL Server Management Studio 中选择 Tools > Options 然后选择左侧的设计(Designers)下面有一个选项是当对表进行调整的时候,如果需要重建表,操作将会被禁止的选项。 将上面的选项取
阅读全文
摘要:在使用 Azure 的时候发现一个有趣的现象。 每天早上同事们开始开发工作的时候,不管是谁,第一次运行程序的时候都会出现数据库连接错误的提示。 2020-10-30 09:26:39.890 DEBUG 9398 [nio-8080-exec-2] com.zaxxer.hikari.pool.Hi
阅读全文
摘要:我们希望给 Discourse 安装一个 sitemap 的插件。 你的 Discourse 需要这个插件吗?实际上是不需要的,这个插件能够帮助你加快索引,但是对 SEO 并不起太大作用。 安装方法 找到插件的 GitHub 地址: https://github.com/discourse/disc
阅读全文
摘要:使用下面的方法: logger.debug("Current DateTime in milliseconds - [{}]", new DateTime().getMillis()); 上面的代码输出的内容是: 15:01:51.331 [main] DEBUG c.i.s.c.t.utiliti
阅读全文
摘要:假定我们有一个文件位于:src/test/resources/data/azure_storage.json 目录中。 azure_storage.json 为数据文件,我们希望将这个文件中的内容读取到测试类中。 azure_storage.json 数据文件在编译成功后会被拷贝到:target/t
阅读全文
摘要:在程序运行到一段时间后,发现上传文件的时候提示: <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>AuthenticationFailed</Code> <Message>Server failed to authenticate the r
阅读全文
摘要:有时候我们需要知道一个文件的大小。 我们可以使用一些方法,比如说将文件读取成 InputStream,然后再使用 available() 获得长度就可以了。 我们也可以使用 FileUtils 来获得。 使用的方法是: FileUtils.sizeOf(localFileCache) localFi
阅读全文
摘要:当你完成安装数据库后,通常会迫不及待的进行访问和连接。但是防火墙会给你很大的麻烦,如果你不进行正确的配置的话。不管使用什么工具,可能就是一直连不上。 本文主要帮助你解决这个小问题。 下面的配置需要在 MariaDB 数据库服务器上进行配置。 我们的场景是,假设我们有一个 Web 服务器是部署在 IP
阅读全文
摘要:在 Azure 上传文件的时候遇到了一个下面的异常: java.io.IOException: mark/reset not supportedat java.base/java.io.InputStream.reset(InputStream.java:655)at com.azure.stora
阅读全文
摘要:在文件上传到服务器的时候,我们希望能够获得文件的指纹以确定文件没有被篡改过。 常用的算法最开始使用的是 MD5,随后随着技术的发展,MD5 算法已经被确定是不安全的了。 目前可能使用更多的是 HSA3_256 哈希算法。 哈希算法通常有以下几个特点: 正像快速:原始数据可以快速计算出哈希值 逆向困难
阅读全文
摘要:这个错误其实是 debug 级别的错误,是不影响运行的。 错误栈为: 020-10-26 15:27:57.726 DEBUG 12844 [nio-8080-exec-1] .s.a.AnnotationAsyncExecutionInterceptor : Could not find uniq
阅读全文
摘要:很多时候我们都会用 Postman 来测试 API。 在最开始的时候,我们都会使用字符串呀什么的来进行测试,随着 API 的继续开发,我们希望通过 API 来上传文件。 如何在 Postman 中进行设置来上传文件? 设置方法 Postman 已经帮我们想到了。 在进入 Postman 以后,找到你
阅读全文
摘要:Azure 提供了一个 Application Insights 工具。 这个工具可以对 Spring Boot 项目中的 API 请求,日志进行分析。 你需要做的就是在你的 Spring Boot 项目中配置好依赖和参数后,Spring Boot 项目启动后就会自动将日志上传到 Azure 供分析
阅读全文
摘要:希望在 Spring Boot 中配置 H2 数据库来进行功能测试。 如何进行配置能来让启动的时候自动载入数据和进行测试? Maven 依赖 如果你的 Spring 项目中没有添加 H2 的依赖,你需要在 Maven 中添加。 使用的参数为: <dependency> <groupId>com.h2
阅读全文
摘要:Spring H2 控制台访问登录以后的内容无法显示。 访问的时候会看到下面的情况。 解决办法 这个主要是 Spring 安全设置的问题。 在 Spring 中的 frameOptions 配置为 iframe 的安全配置。 X-Frame-Options 头主要是为了防止站点被别人劫持,所以 if
阅读全文
摘要:如果希望向 H2 中插入时间,你可以使用下面的方法插入: ('CWIKIUS.CN', 'client-name-01.csv', '65', 'NEW','2020-10-22 12:47:52.690', CURRENT_TIMESTAMP()), 需要注意的是,上面有 2 个字符串。 如果你希
阅读全文
摘要:在运行测试的错误有提示下面的错误: Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Schema "DBO" not found; SQL statement: select myscofile0_.id as id1_1_0_, myscof
阅读全文
摘要:Spring Boot 项目在启动的时候可以对 H2 中的数据库进行初始化。 一般来说我们会定义下面的参数: spring.datasource.data=classpath:h2-data.sql 但是在 Spring Boot 项目运行以后,我们通过 H2 的控制台查看数据库的时候,发现 SQL
阅读全文
摘要:Discourse 高度依赖电子邮件,但是在很多时候你的网站可能也会因为发送的邮件频率过高而被邮件收件箱定义为垃圾邮件。 使用第三方的邮件发送工具能够有效的帮你解决这些问题,但如何检查你邮件发送后被垃圾的情况,从而做出调整让你的系统保持在正常并且健康的状态? MailGun 给的一个工具 首先声明,
阅读全文
摘要:与所有的系统用户分类是一致的,Discourse 也会分类使用用户和用户组。 但是 Discourse 的管理员用户组是没有办法从用户组上添加用户的,你需要登录 Discourse 的后台后,找到你希望指派的用户,然后将这个用户指定为管理员。 Discourse 希望通过这个操作来提高安全性。 操作
阅读全文
摘要:Spring 的日志在输出的时候,出现了类似 -e[0;39m e[2m[ 的错误。 原因和问题解决 能够出现上面的原因是你的控制台输出工具不支持 ANSI 彩色字符,但是你的 Spring 配置文件中又强制了使用彩色字符。 查找你的 Spring 配置文件:application.properti
阅读全文
摘要:启动运行的时候出现错误: 2020-10-20 12:01:21.628 DEBUG 69140 [ main] i.n.util.internal.NativeLibraryLoader : netty_tcnative_windows_x86_64 cannot be loaded from j
阅读全文
摘要:Discourse 在 CentOS 8 上的全新安装指南和过程,请参考本文档。 安装 Docker Discourse 是基于 Docker 运行的,所以你需要先安装 Docker。 针对 CentOS 8 ,你需要运行下面 2 个命令,将 Docker 的仓库注册上去。 $ sudo yum i
阅读全文
摘要:在程序中获得 JWT 的Token 代码后,可以对 JWT 进行解码。 常用的可以使用 OAuth0 提供的解码包,你也可能会使用 nimbus-jose-jwt 包。 Maven 配置参数为: <dependency> <groupId>com.nimbusds</groupId> <artifa
阅读全文
摘要:根据官方的说明,从 Discourse 的版本 2.6 beta 开始就不会对头像的动态 Gif ( Animated GIF)进行支持了。 据官方解释这是为了简化 Discourse 的代码库,同时官方也说也有可能在后续版本中重新开放动态 Gif 插件的支持。但是这个支持没有时间表。 针对帖子内容
阅读全文
摘要:很多公司都在做这方面的转型。 尤其是在公司达到一定运营规模后,PHP 的问题会让公司花费更多的时间去部署排查问题。当时公司选择 PHP 的主要原因,就是因为开发简单,框架也还不错,部署也比较快。持续集成的问题可能没有太多的问题。 如果一开始要上 Java 的话,很多时候需要面临从框架,数据库,ORM
阅读全文
摘要:在网页或者 API 进行调试的时候,尤其是在 OAuth 调试的时候,我们希望能够调试发送到 API 的数据,这个时候如何进行调试呢? 使用 Firefox 不是十分清楚如何使用 Chrome 进行调试,但是经过一些摸索,我们可以尝试使用 Firefox 进行调试。 假设我们要访问一个 API 的网
阅读全文
摘要:在我们写 Spring 安全的时候通常有这么一句话: httpSecurity.csrf().disable(). 从这句话的字面意思就很明白就是禁用 csrf,什么是 csrf,为什么要禁用可能就一脸懵逼了。 因为你很有可能会遇到一个错误: HTTP Status 403-Invalid CSRF
阅读全文
摘要:如果在你的 Maven 项目中,如果你使用了一个 jar,但是这个 jar 没有源代码。 IntelliJ IDEA 会先自动帮你反编译,然后提示你下载源代码。 你也可以设置自动下载源代码和文档。 自动下载源代码和文档 选择 IntelliJ IDEA 的设置。 快捷键是 Ctrl + Alt +
阅读全文
摘要:你需要一个 WebSecurityConfigurerAdapter 来对用户提供安全的校验,确保用户能够访问必要的资源。 一个基于 Spring Boot 的应用程序将会帮你完成安全的校验(通过在 HTTP 的基础授权上添加自己的 WebSecurityConfigurerAdapter)。 这个
阅读全文
摘要:Java 路径接口是 Java NIO 2 更新的一部分,Java NIO 在 Java 6 和 Java 7 中接收 Java 路径接口。 Java路径接口已添加到Java 7中的Java NIO。路径接口位于 java.nio.file 包中,所以Java Path接口的完全包名是 java.n
阅读全文
摘要:在我们对 Joda 日期对象进行转换的时候,我们需要将 joda 设置时区,这样才能针对不同的时区输出正确的日期格式。 时区的设置是在: logger.debug("dateTime for EST is - [{}]", dateTime.toDateTime(DateTimeZone.forID
阅读全文
摘要:如果你有一个 JWT 的字符串。 你在使用 JWT 的时候可能希望了解 JWT 这个令牌过期的时间。你可以对 JWT进行解码,解码的网站是 JWT 的官网 。 访问上面的网站,然后将你的 JWT 字符串拷贝到需要解码的字符串上,然后对字符串进行解码。 在解码的对象后,你会看到 exp。 上面的 ex
阅读全文
摘要:我们都知道 JUnit 是用于进行单元测试的。但是 Junit 5 和 Junit 4 的区别比较大。 很多时候你可能会遇到 Junit 引擎配置错误导致测试无法进行。 junit-jupiter-apiJUnit 5 Jupiter API 的测试,你需要使用这个 API 来写测试和进行扩展。 j
阅读全文
摘要:有时候我们对 dependencies 和 dependencyManagement 可能会有点晕。 我们简单来说这个就常考虑在 parent pom 中定义的情况。 简单来说就是 dependencyManagement 管版本,dependencies 管依赖。 dependencies 所有在
阅读全文
摘要:在 Hibernate 或者 ORM 映射中,我们可能会存在 1 对多的情况。 在这个时候,如果你使用 Jackson 将对象序列化的时候,就会出现双向引用导致的无限递归(infinite recursion)的情况。 @JsonManagedReference 和 @JsonBackReferen
阅读全文
摘要:在启用 SSL 后,我们也希望将主域名重定向到 www。 希望实现的操作是,当用户访问 https://cwikius.cn 的时候,浏览器应该能够自动重定向到 https://www.cwikius.cn。 如果我们按照 80 端口的 http 配置的,你可能会得到浏览器的安全配置。 比如说,我们
阅读全文
摘要:我们基本上都知道 Spring 使用的是 logback 为日志配置的。 如果在你的项目中启用了你自己定义的 logback.xml 配置的话,本来是彩色的日志输出就变成黑白色了。 瞬间感觉有点没那么好看了,有没有什么办法让 Spring 在自己的项目中的日志输出也输出彩色呢? 如何修改配置 其实需
阅读全文
摘要:在开始使用 IntelliJ IDEA 的时候,有一组非常重要的快捷键你可能不太适应。 尤其是针对从 Eclipse 转移过来的用户。 那就是重做和撤销快捷键。Redo 和 Undo 。 快捷键 在 Windows 中,很多用户都知道撤销的快捷键是 Ctrl +Z,如果是重做的话,那快捷是 Ctrl
阅读全文
摘要:在 Spring 项目中运行测试的时候,得到错误: TestEngine with ID 'junit-vintage' failed to discover tests” with Spring 这个错误的原因是 JUnit 的引擎,使用了 junit-vintage 引擎。 junit-vint
阅读全文
摘要:当你打开项目或者项目中的文件的时候,如果你有 Spring 的 Value 的配置,Intellij 将会自动将参数替换为值。 如果你单击上面的值,那么这个配置参数将会显示为配置的参数名。 如果你还想显示值的话,你需要重新打开这个文件或者项目。 有没有什么快捷键可以快速进行切换。 快捷键 这个配置是
阅读全文
摘要:如下面的提示内容。 提示的是在拷贝资源文件的时候,因为没有指定编码,将会使用 UTF-8 对编码进行转换。 [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy
阅读全文
摘要:完整的错误信息如下: { "error": "invalid_scope", "error_description": "AADSTS70011: The provided request must include a 'scope' input parameter. The provided va
阅读全文
摘要:一直认为 Azure 的设计过于复杂,权限要求过多,就感觉是一群技术宅做的系统。相对 AWS 来说,更加喜欢 AWS 的功能设计。 但是因为工作需要又不得不使用 Azure,所以把使用过程中遇到的一些问题都记录下来,以期望能帮助有需要的人。 这篇文章主要用于介绍如何使用 postman 来获得 Az
阅读全文
摘要:在 CentOS 8 安装成功后,如果希望启用 ssl,你需要执行下面的一些操作。 安装 mod_ssl 使用下面的命令安装 mod_ssl # dnf install mod_ssl 确定 mod_ssl 被启用 这一步不是必须的,但是你可以使用下面的命令确定安装的 mod_ssl 已经被启用了。
阅读全文
摘要:本文主要用于说明如何从命令行工具的方式中恢复 Discourse,以及我们在备份和恢复的过程中遇到的坑和解决办法。 恢复前需要的准备工作 在新服务器上安装完整和全新的 Discourse,这个安装成功后不需要通过 UI 前台进行用户注册。 备份和获得备份文件。 确定你现在运行的 Discourse
阅读全文
摘要:NTP 服务是什么和为什么我们需要在我们的服务器启用 NTP 服务? 可能很多人都不是非常了解,简单来说就是我们希望我们服务器的时间是准确的没有偏差的。这个的意义在数据插入和你程序取得计算机时间的时候是准确的。 比如说在 java 中如果 new date() 将会获得计算机当前的时间,如果当前的世
阅读全文
摘要:通过访问密钥签发机构上面提供的信息了解到:Let’s Encrypt 针对一个域名只会在一定时间内签发 5 次,如果你超过了签发的次数,你需要 5 天后才能再次申请。 这个可能对你会造成无法安装成功的影响,因为你只有 5 次安装的机会,否则你在安装过程中会得到错误信息如下: [Sun 04 Oct
阅读全文
摘要:近期因为对服务器的平台进行切换和升级,在数据备份恢复的时候出现了不少问题,因此就进行了不少次数的重复安装。 在后面几次重复安装后,发现界面无法访问,通过使用命令 ./launcher logs app 查看安装的日志后发现 Let’s Encrypt 已经不再签发密钥了。原因是这个域名申请的密钥次数
阅读全文
摘要:在升级 discourse 后,很多内容没有办法正确显示。 通过 F12 查看浏览器后,发现有提示 https 和 http 的混合内容。 下面是混合内容常在浏览器中看到的提示。 不管是不是对系统进行重启或者刷新缓存都没有办法解决。 强制使用 https 其实 Discourse 如果安装的时候使用
阅读全文
摘要:在更新或者安装 docker 容器的时候,提示下面的错误: Problem: package docker-ce-3:19.03.13-3.el7.x86_64 requires containerd.io >= 1.2.2-3 上面的问题如何解决。 解决 根据提示的内容,上面已经说得比较明确了。
阅读全文
摘要:如果你安装使用的是 CentOS 的话,你可能没有办法直接安装 htop。 你会得到下面的信息: [root@vps-f2a02f66 discourse]# htop -bash: htop: command not found 解决办法 你可用将 RHEL 添加到你的仓库中。 运行下面的命令:
阅读全文
摘要:Discourse 安装成功后,我们可能希望启用 firewalld 的防火墙进程。 但是你会发现如果你在操作系统上启用后,邮件发送将会屏蔽。你可能会想到开启端口,当你成功开启端口后,你还是会发现你的邮件发送也是屏蔽的。 这是因为 docker 的端口也需要开放,你需要将 docker 设置到安全的
阅读全文
摘要:在用户权限校验的过程中,一个用户如果使用授权信息成功登录后,一个 JSON Web Token 将会返回给用户端。 因为返回的令牌包含有授权信息,应用程序应小心保存这些授权信息,以避免不必要的安全问题。你的应用程序在不需要授权信息的时候,应用程序不应该保留授权成功后返回的令牌。 应用程序也不应该将这
阅读全文
摘要:JSON Web Tokens 由使用 (.) 分开的 3 个部分组成的,这 3 个部分分别是: 头部(Header) 负载(Payload) 签名(Signature) 正是因为上面的组织形式,因此一个 JWT 通常看起如下面的表现形式。 xxxxx.yyyyy.zzzzz 让我们针对上面的形式来
阅读全文
摘要:在默认情况下,Discourse 是没有打开标签设置的。 如果你希望你的网站和我们一样能够设置标签。 如何设置标签 登录 Discourse 的后台,选择 settings 标签,然后搜索 tags。 在搜索结果中,选择启用标签,然后刷新前台页面,你就可以选择使用标签了。 在上图中你可以看到已经启用
阅读全文
摘要:有关本文档的快速链接,请参考页面提示。 链接名称URL内容说明 GitHub MD 源代文件 https://github.com/cwiki-us-docs/cwikius-docs/blob/master/jwt/README.md 将本页面中的内容转换为 MD 文件的手册,并存于 Github
阅读全文