无奈何杨(wnhyang)

I will keep to fight

安全框架

想必一旦涉及到Spring安全框架,很容易就会想到SpringSecurityShiro,了解过的都知道,完美的集成一套安全框架是多么麻烦的事情,所以大家都有努力在简化安全框架的集成成本。

我也是在自己做项目中需要集成安全框架才有了这篇文章,上面的两位的集成难度对我这种小菜鸡还是太难了。所以果断寻求别的方案,这不,发现了这个Sa-Token

Sa-Token 介绍

Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证权限认证单点登录OAuth2.0分布式Session会话微服务网关鉴权 等一系列权限相关问题。

以上介绍复制于官网,在自己体验和使用后,感受就是🥳

Sa-token使用起来真的非常简单方便,具体使用上,直接看官网就好,这里主要讨论一个问题:

在微服务模式下,auth(认证中心)的拆解,是归于system(系统),还是独立的,如果是独立的。。。如果不是独立的。。。

阅读全文 »

启动错误日志呢

如题,这个问题其实很早之前就遇到过,是同样的报错,虽然可能具体的原因有些不同,但忘了记录,这次说什么也要记录下来长个记性。

说来也离奇,通常在使用IDEA启动调试SpringBoot就算是启动不了,至少还有一些日志能够帮助我们排查出是什么问题,但这次遇到的只有下面这个,除此之外什么什么也没有了!

1
2

Process finished with exit code 1

这可着实无从下手,还有一种启动失败错误如下,也是非常常见的。

1
2
3
4
Connected to the target VM, address: '127.0.0.1:56302', transport: 'socket'
Disconnected from the target VM, address: '127.0.0.1:56302', transport: 'socket'

Process finished with exit code 1
阅读全文 »

又搞我?

我的服务器竟然被攻击了!之后,我的服务器又被攻击了,上次是解决了远程用户登录,定时执行恶意脚本的问题。

但这次又对我的MySQL下手了,并且在每个库中留下了一张README的表,表里只有一条数据,如下:

您的数据库已删除。您必须支付 0.0125 比特币 (BTC) 才能取回它们。我拥有的备份:okay, wnh, xxl_job。通过 chin71303@proton.me 与我联系 只有与付款相关的邮件才会得到答复!

bc1q3l9q2n840y682vvy7xxs7cptnthag3z3xmfpgy

chin71303@proton.me

真是杀人且诛心啊!

跟上次一样,发生了这件事后我立刻马上就知道被攻击的原因了,还是我习惯了自己开发,随性的原因,平常我自己玩就不太注意开放出来的安全性,因为那时候仅仅是在自己的电脑上玩,不管是局域网还是防火墙都会有保障,而且一般不会全天24小时运行,但是到服务器上就不一样了,在安全规则上设置的比较随意,需要的端口都直接开放,中间件账号权限也是随意设置的,特别容易被以撞库等方式破解,这次事件也正是它带来的后果。

阅读全文 »

Q&A1

Q1:清理2023年,除了20230109目录外,保留近一个月的目录shell脚本

A1:以下是清理除20230109目录外,保留近一个月的目录的shell脚本:

1
2
3
4
复制代码#!/bin/bash

# 删除早于30天的目录
find /path/to/directory/* -type d ! -name "20230109" -ctime +30 -exec rm -rf {} \;

/path/to/directory/替换为要清理的目录的路径。这个脚本使用find命令来查找除了名为20230109的目录以外的所有目录,并删除它们,同时保留近30天内被修改过的目录。

学到了学到了,运维时就可以通过手动或定时任务清理一些不需要的文件了。

阅读全文 »

什么是Boot

过去只是用人家的xxx-spring-boot-starter,用着是挺爽的,但随着学习和工作,发现不管是流行的开源产品还是公司内部总会存在一些自己封装的starter,刚开始我也是很不解,一直觉得原本的就是最好的,根本不需要我们改什么,直到我学着去自己写starter,才发觉脚手架的意义就在这啊,这就是boot啊!

不多废话了,接下来从开源项目yudao-cloud说起怎么在开源框架的基础上封装自己的starter

尝试自己写starter

我们就从yudao-spring-boot-starter-job开始做一个属于自己的starter吧!

前提说明

SpringBoot基础的就不用多提了,需要注意的是不同版本会有一些差异,SpringBoot2.7之后自动配置类差异

阅读全文 »

真的没想到我的服务器真的能被攻击呀!

之前买了两台华为云服务器,配置不高,但够我用。

就在上周,首先华为云-云监控服务给我发了好几条关于我的服务器CPU长时间使用率大于90%的告警短信,接着还有我装有naocsprometheusgrafana,配置了钉钉机器人告警的服务器也开始不断在钉钉群里推送告警消息。我也是很奇怪?这两台服务器虽然配置不高,但我装的东西,跑的程序也不至于把CPU跑满吧!

第一天晚上收到的消息,电脑也没在身边,就没当回事,因为我也确实有一周时间没有上服务器玩了,以为就是我的服务发疯呢。

直到第二天,问题还一直都在,我就不得不去看一下了。

阅读全文 »

简介

有了前面初次使用 XXL-JOB这篇文章就可顺着往下讲了

我的需求也很简单,通过一种方式发送即将过期的提醒,当然免费方式中最好的就是邮件啦!

我这里选择的方式就是利用XXL-JOB来查询然后分组发送,当然还有其他方式,我也非常乐意尝试考虑其他方法,合适的话。

留在最后讨论吧!

阅读全文 »

简介

最近在做一个短链接的项目,其实应该是算改造,将原来的功能完善一下,其中就包括一个记录访问量的需求,需求大概是这样的:

根据每个链接记录其一定时间内的访问量,这个访问量应该是随时间动态变化,即使我不做什么操作。

最容易就想到利用Redis的两种数据结构stringhash

  • string,link:visit:$id:$date

需要通过时间来设置和查询,可单独设置过期时间,删除不能直接通过link来删除,只能自然过期?

  • hash,link:visit:$id

设置和查询简单,不可单独设置过期时间,删除可一次性删除

当然我还看到有利用hyperloglog记录访问集合的,这与我需求不符就不提了

阅读全文 »

如题,记录一下我与ChatGPT的对话。

Q&A1

Q1:springboot 发送html邮件动态生成table

阅读全文 »
0%