08 2021 档案
摘要:Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 Redis 键(key) Redis 键命令用于管理 redis 的键。 语法 Redis 键命令的基本语法如下: 127.0.0.1:6379> COMMAND KEY_NAME Redis keys 命令
阅读全文
摘要:Redis 包含redis-benchmark模拟 N 个客户端同时发送 M 个查询执行的运行命令的实用程序 Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>] -h
阅读全文
摘要:windows下安装 下载 Github下载地址:https://github.com/microsoftarchive/redis/releases 安装 把下载的压缩包解压 开启redis服务端,双击redis-server.exe 开启redis客户端,双击redis-cli.exe Linu
阅读全文
摘要:缓存 什么是缓存 服务器中内存中开启的一部分空间 作用 用于存储经常被使用且不常改变的数据 为什么要使用缓存 相对于读取磁盘的读取速度快 访问量大的情况下减少服务器读取磁盘压力 shiro缓存Ehcache shiro用于认证和授权,每次访问都会读取数据库中的数据,这样就会增加数据库压力 为了减轻数
阅读全文
摘要:授权本质分为两部分:1、添加权限Flag 2、定义权限Flag 权限Flag:角色(Role)和权限(Permission) Shiro 支持三种定义(角色/权限)方式: 编程式:通过写 if/else 授权代码块完成: Subject subject = SecurityUtils.getSubj
阅读全文
摘要:认证为了保证密码的相对安全需要对密码进行加密处理了,加密的方式有很多最常使用MD5加密,加盐 MD5特点:不可逆 public static void main(String[] args) { //md5+salt+hash Md5Hash md5Hash = new Md5Hash("123",
阅读全文
摘要:认证 固定数据 Realm @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
阅读全文
摘要:Springboot整合shiro 添加依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.7.1</version> </dependency> <
阅读全文
摘要:入门 十分钟快速入门:https://shiro.apache.org/10-minute-tutorial.html 下载源码:https://shiro.apache.org/download.html 代码分析 Factory<SecurityManager> factory = new In
阅读全文
摘要:Shiro是一个Java安全框架 Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等 其基本功能点如下所示: Authentication:身份认证 /
阅读全文
摘要:官网:https://swagger.io/ 使用Swagger 添加依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version
阅读全文
摘要:JJWT是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache License,版本2.0),JJWT很容易使用和理解。它被设计成一个以建筑为中心的流畅界面,隐藏了它的大部分复杂性。 JJWT的目标是最容易使用和理解用于在JVM上创建和验证JSON Web令牌(JWTs)的库。
阅读全文
摘要:JWT的构成 第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature). header jwt的头部承载两部分信息: 声明类型,这里是jwt 声明加密的算法 通常直接使用 HMAC SHA256 完整的头部就像下
阅读全文
摘要:spring security是安全框架,最常使用的是认证和授权,认证是登录操作,授权是针对请求访问的限制。 在项目开发中正常情况下,认证和授权需要自定义一些功能 认证 登录逻辑(实现UserDetailsService接口) 从数据库中获取数据 @Component public class Us
阅读全文
摘要:自定义加密是实现PasswordEncoder接口并重写其两个方法 public interface PasswordEncoder { String encode(CharSequence var1); //加密 boolean matches(CharSequence var1, String
阅读全文
摘要:项目需求 根据用户权限不同显示不同菜单,admin显示菜单(用户管理、角色管理、菜单管理),guest显示菜单(用户管理、菜单管理) 显示菜单原理 向客户端返回不同的菜单数据 需求分析 数据结构:用户表、角色表、用户角色关系表、菜单表、菜单角色关系表。 项目业务逻辑:通过登录用户名获取用户对象,并根
阅读全文
摘要:CSRF CSRF是指跨站请求伪造(Cross-site request forgery),是web常见的攻击之一。从Spring Security 4.0开始,默认情况下会启用CSRF保护,以防止CSRF攻击应用程序,Spring Security CSRF会针对PATCH,POST,PUT和DE
阅读全文
摘要:原理分析 1、用户登录通过UsernamePasswordAuthenticationFilter认证请求处理, 2、通过RememberMeServices对象中的onLoginSuccess方法完成登录成功后的处理, 2.1、TokenRepository对象生成token字符 2.2、Reme
阅读全文
摘要:使用注解需要开启注解功能 securedEnabled = true:开启Secured注解prePostEnabled = true:开启Prexxx和Postxxx注解 @EnableGlobalMethodSecurity(securedEnabled = true,prePostEnable
阅读全文
摘要:springsecurity 授权就是控制访问请求,通俗说就是控制url 具体做了些什么? 1、认证失败会跳转到登录页面 2、根据权限访问 3、根据角色访问 4、没有权限的页面展示 授权 //授权:针对url的设置 @Override protected void configure(HttpSec
阅读全文
摘要:认证实际就是登录和设置权限(就是立Flag,Flag通过授权才能有具体的相应的作用) 登录就是校验用户名和密码,通常情况下用户名和密码是存储在数据库中 登录名和密码存储方式: 1、通过配置文件 查找 SecurityProperties,可以确定配置属性 spring.security.user.n
阅读全文
摘要:SpringSecurity https://docs.spring.io/spring-security/site/docs/current/reference/html5/#prerequisites 概念 Spring Security is a framework that provides
阅读全文
摘要:springboot的整合其实就是自动配置,springboot是如何实现自动配置springmvc的,先回顾springmvc是做什么的 springmvc 工作流程是:请求通过前端控制器将请求URL交给处理器映射器处理获取Handler,并将获取的handler交给处理器适配器执行,执行后返回M
阅读全文
摘要:模板引擎 模板引擎作用:根据页面模板和数据生成展示页面 初识Thymeleaf 引入Thymeleaf Thymeleaf 官网:https://www.thymeleaf.org/ Thymeleaf 在Github 的主页:https://github.com/thymeleaf/thymele
阅读全文
摘要:首页处理 @Bean public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext, FormattingConversionService mvcConversion
阅读全文
摘要:Druid简介 Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。 Github地址:https://github.com/alibaba/druid/ 配置数据源 1、添加上 Druid 数据源依赖。 <dependency>
阅读全文
摘要:整合JDBC 创建测试项目测试数据源 1、新建一个项目测试 选择依赖 2、编写yaml配置文件连接数据库 spring: datasource: username: root password: root #?serverTimezone=UTC解决时区的报错 url: jdbc:mysql://1
阅读全文
摘要:环境准备 虚拟机安装CentOS 下载并安装xshell、xftp 下载MySQL 安装MySQL命令 查看系统中有无MySQL rpm -qa|grep mysql 查看系统中有无mariadb rpm -qa | grep mariadb 卸载mariadb rpm -e --nodeps ma
阅读全文
摘要:profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境; 配置文件 我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml , 用来指定多个环境版本; 例如: application-te
阅读全文
摘要:JSR303数据校验 @Component //注册bean @ConfigurationProperties(prefix = "person") @Validated //数据校验 public class Person { @Email(message="邮箱格式错误") //Cannot r
阅读全文
摘要:配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :key=value application.yml 语法结构 :key:空格 value 配置文件的作用 :修改SpringBoot自动配置的默认值,因为Spri
阅读全文
摘要:springboot主要是帮助我们简化开发中繁琐的配置,如何简化??? pom.xml 父依赖 管理SpringBoot应用里面所有依赖版本,如果导入的包没有被管理就需要手动配置版本 启动器 spring-boot-starter <dependency> <groupId>org.springfr
阅读全文
摘要:Spring Boot 基于 Spring 开发,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。 Spring Boot 以约定大于配置的核心思想 Hello,World 准备工作 环境准备: java version "1.
阅读全文