SprngSecurity实战实例,JWT Token登录认证&权限控制
这个在暑假就写过,上学以后重新再去写一遍发现困难比较多,于是准备写一篇记录一下。 tips: 源码在文章末尾,sql文件在源码resource文件夹下的sql文件夹里 需求想用springsecurity实现JWT Token登录认证,实现动态菜单生成,权限控制,登出(用户注销)。 认证准备工作 maven依赖 1234567891011121314151617181920212223242526 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency><dependency> <groupId>org.projectlombok</groupId> <artifact...
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是一个封装...
windowsのwsl安装centos
打开虚拟化在安装 WSL 2 之前,必须启用虚拟机平台可选功能。计算机将需要虚拟化功能才能使用此功能。 执行命令(管理员) 1dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart Chocolatey安装NuGet(读作New Get)是用于微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展。Chocolatey 是基于 NuGet 的一个软件包管理器,就像 Linux 中的 yum 或 apt 一样,在 Windows10 中也可以用命令行安装程序了 以管理员身份打开powershell.exe,执行以下代码 1Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 完成后,输入命令:c...
GaussDB安装及应用
安装openGauss官网 我们选择极简版 .ixmkgkvlcoet{width:70%} 由于有要求: 普通用户必须有数据库包解压路径、安装路径的读、写和执行操作权限,并且安装路径必须为空。 普通用户对下载的openGauss压缩包有执行权限。 因此我们直接useradd openGauss,在openGauss家目录下对tar.bz2进行解压 123456789101112useradd openGauss# 把openGauss-5.0.3-CentOS-64bit.tar.bz2 放在/home/openGauss下tar -jxf openGauss-5.0.3-CentOS-64bit.tar.bz2 cd /home/openGauss/simpleInstallchmod +x ./install.sh# 执行install.sh脚本安装openGauss# -w:初始化数据库密码(gs_initdb指定),因安全需要,此项必须设置。# -p:指定openGauss端口号,如不指定,默认为5432。sh install.sh -w "g...
prometheus&consul&blackboxTest
安装包地址:通过网盘分享的文件:链接: https://pan.baidu.com/s/1iBSiZ4baGzf8KWlhdnDv0w?pwd=9i1u 提取码: 9i1u 代码地址见文章末尾 虚拟机关闭防火墙: systemctl status firewalldsystemctl stop firewalldsystemctl disable firewalld Prometheus启动脚本startup-prometheus 123456789101112131415161718192021#!/bin/bashcd `dirname $0` # 替换为 Prometheus 的实际路径BASE_DIR=`pwd`echo `pwd`# 定义 Prometheus 的路径PROMETHEUS_PATH=$BASE_DIR/prometheus # 替换为 Prometheus 的实际路径PID_FILE=$BASE_DIR/prometheus.pid # 存储进程 ID 的文件LOG_FILE=$BASE_DIR/logs/prometheus.log # ...
hadoop与hive的安装和配置
ssh登录过程 连接请求 用户通过 SSH 客户端发起连接请求,指定目标主机和用户名,即ssh username@hostname 服务器响应 服务器收到连接请求后,会发送一个公钥给客户端。 公钥验证 客户端收到服务器发送的公钥后,会检查这个公钥是否在自己的 known_hosts 文件中。如果没有找到,会发出警告,询问用户是否信任这个公钥,用户可以选择是或否。 1234ssh 111.229.25.127The 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 生成会话密钥 如果客户端接受了服务器的公钥,客户端会生成一个称为会话密钥(session ...
Docker笔记
基础安装123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#【可选】centos8配置yum源cd /etc/yum.repos.drm -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仓库信息# 移除旧版本dockersudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ ...
处理幂等性
代码地址 ruoyi脚手架是通过参数去判断: 把请求缓存起来到redis里面去【请求地址、请求参数…】 比如:请求地址和请求参数都是一样的话,10秒只能就拒绝重复提交 但这个方法存在一个问题:如果请求的参数是json,一旦我提取出来,将来在接口里面就提取不到了,所以我们先要把这个问题解决掉 **所需依赖:**springweb、redis、aop 1234567891011121314151617181920<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId>...
自定义限流注解
代码地址 依赖依赖:springweb、nosql的redis、aop 123456789101112<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-starte...
leetcoce随记
1123456789101112131415161718192021222324252627282930import 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<...