SprngSecurity实战实例,JWT Token登录认证&权限控制
这个在暑假就写过,上学以后重新再去写一遍发现困难比较多,于是准备写一篇记录一下。
tips: 源码在文章末尾,sql文件在源码resource文件夹下的sql文件夹里
需求想用springsecurity实现JWT Token登录认证,实现动态菜单生成,权限控制,登出(用户注销)。
认证准备工作
maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
...
tienchin项目笔记
项目结构分析项目结构:多模块(不是微服务)
整体思路:
依赖链最底层:common,提供了公用的工具,定义了统一的controller,BaseEntity实体类公共对象,以及其他的操作工具
common的上一层:framework,主要是配置类,在这里配置了系统的一些东西,例如security aop 数据源的配置等等
剩下的对应了三个的功能模块
system:系统管理,相等于具体的业务。比如系统管理中的用户管理,角色管理,菜单管理等等,包括系统监控什么的,都是写在system里面的
generator:代码生成
quartz:定时任务
ui:前端项目
admin:项目唯一的统一入口,controller都是在这里写的,上面的common等,都会被admin所依赖,这里的controller会调用对应的service
登录验证码响应结果分析:
Base64字符串转图片:https://tool.jisuapi.com/base642pic.html
验证码生成接口分析:
url:localhost/dev-api/captchaImage
AjaxResult是一个封装的返回 ...
prometheus&consul&blackboxTest
安装包地址:通过网盘分享的文件:链接: https://pan.baidu.com/s/1iBSiZ4baGzf8KWlhdnDv0w?pwd=9i1u 提取码: 9i1u
代码地址见文章末尾
虚拟机关闭防火墙:
systemctl status firewalldsystemctl stop firewalldsystemctl disable firewalld
Prometheus启动脚本startup-prometheus
#!/bin/bash
cd `dirname $0` # 替换为 Prometheus 的实际路径
BASE_DIR=`pwd`
echo `pwd`
# 定义 Prometheus 的路径
PROMETHEUS_PATH=$BASE_DIR/prometheus # 替换为 Prometheus 的实际路径
PID_FILE=$BASE_DIR/prometheus.pid # 存储进程 ID 的文件
LOG_FILE ...
hadoop与hive的安装和配置
ssh登录过程
连接请求
用户通过 SSH 客户端发起连接请求,指定目标主机和用户名,即ssh username@hostname
服务器响应
服务器收到连接请求后,会发送一个公钥给客户端。
公钥验证
客户端收到服务器发送的公钥后,会检查这个公钥是否在自己的 known_hosts 文件中。如果没有找到,会发出警告,询问用户是否信任这个公钥,用户可以选择是或否。
ssh 111.229.25.127
The authenticity of host '111.229.25.127 (111.229.25.127)' can't be established.
ECDSA key fingerprint is SHA256:1OLYAxTlNkqPEPqX4n2Pvcg8hBzYbqD+UOfVTseEMYo.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
生成会话密钥
如果客户端接受了服务器的公钥,客户端会生成一个称为会话密钥(sessi ...
Docker笔记
基础安装#【可选】centos8配置yum源
cd /etc/yum.repos.d
rm -rf ./*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
yum -y clean all #清除所有文件
yum -y makecache #建立缓存
yum repolist #查看yum仓库信息
# 移除旧版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
...
处理幂等性
代码地址
ruoyi脚手架是通过参数去判断:
把请求缓存起来到redis里面去【请求地址、请求参数…】
比如:请求地址和请求参数都是一样的话,10秒只能就拒绝重复提交
但这个方法存在一个问题:如果请求的参数是json,一旦我提取出来,将来在接口里面就提取不到了,所以我们先要把这个问题解决掉
所需依赖:springweb、redis、aop
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactI ...
自定义限流注解
代码地址
依赖依赖:springweb、nosql的redis、aop
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
application.prop ...
leetcoce随记
1import java.util.HashMap;
class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
int[] fnums = {3, 2, 4};
int[] result = solution.twoSum(fnums, 6);
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}
}
public int[] twoSum(int[] nums, int target) {
int diff=0;
HashMap<Integer, Intege ...
谷粒商城学习记录
微服务SpringCloud Alibaba-Nacos[作为配置中心]如何使用Nacos作为配置中心同意管理配置:
引入依赖
<!--配置中心来做配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
创建一个bootstrap.properties文件
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
需要给配置中心默认添加一个叫数据集的(Data Id) gulimall-coupon.properties.。默认规则:应用名.properties
给应用名.properties添加任何配置
动态获取配置
@RefreshScop ...
hexo 博客安装教程 胎教级
环境准备安装git到 GitHub 的页面上下载 exe 安装文件并运行:
安装包下载地址
详细可看:(6条消息) Git 详细安装教程(详解 Git 安装过程的每一个步骤)_mukes的博客-CSDN博客_git安装
安装Nodejs下载链接:下载 | Node.js 中文网 (nodejs.cn)
详细可看:Node.js 安装配置 | 菜鸟教程 (runoob.com)
最后通过cmd 输入node --version 检测是否安装完成,只要有输出就行,不管版本号是多少
查看是否安装成功:
在桌面鼠标右键点击git bash here或者打开电脑CMD,依次输入以下指令
node -v #查看node版本
npm -v #查看npm版本
显示如上即成功
安装淘宝的cnpm 管理器npm install -g cnpm --registry=http://registry.npm.taobao.org
由于国内的镜像源速度较慢,所以我们利用 npm 来安装 cnpm ,在命令行中输入npm install -g cnpm --registr ...