SpringBoot—Spring Security 中使用 JWT ( 无状态登录 )
在前后端分离的项目中,登录策略也有不少,不过 JWT 算是目前比较流行的一种解决方案了,本文就和大家来分享一下如何将 Spring Security 和 JWT 结合在一起使用,进而实现前后端分离时的…
SpringSecurity—AuthenticationManager 验证原理分析
在 UsernamePasswordAuthenticationFilter 源码分析 中,最后在类UsernamePasswordAuthenticationFilter 的验证方法 attempt…
SpringSecurity—UsernamePasswordAuthenticationFilter 源码分析
UsernamePasswordAuthenticationFilter 是 AbstractAuthenticationProcessingFilter 的子类,主要作用是对用户身份信息的验证。 关…
SpringSecurity—AbstractAuthenticationProcessingFilter 源码解析
AbstractAuthenticationProcessingFilter 是处理 form 登陆的过滤器,与 form 登陆有关的所有操作都是在该类及其子类中进行的。 继承关系 public ab…
SpringBoot—SpringSecurity登录使用( JSON 格式数据 )
在使用 SpringSecurity 中,大伙都知道默认的登录数据是通过 key/value 的形式来传递的,默认情况下不支持 JSON格式的登录数据,如果有这种需求,就需要自己来解决。 基本登录方案…
Http请求中Form Data与Request Payload的区别
前端开发中经常会用到AJAX发送异步请求,对于POST类型的请求会附带请求数据。而常用的两种传参方式为:Form Data 和 Request Payload(JSON)。 GET请求 使用get请求…
SpringBoot—结合Oauth2(密码模式)
什么是OAuth2 OAuth 是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等),而在这个过程中无需将用户名和密码提供给第三方应用。实现这一功能是…
SpringBoot—SpringSecurity(基于数据库的动态权限配置)
前面在这个讲了SpringSecurity 基于数据库的认证,但是这个认证中的用户认证是有问题的,因为里面的用户权限都是写死的,很难更改,所以用数据库的动态配置就能解决这个问题! http://www…
SpringBoot—SpringSecurity(角色继承问题)
角色继承实际上是一个很常见的需求,因为大部分公司治理可能都是金字塔形的,上司可能具备下属的部分甚至所有权限,这一现实场景,反映到我们的代码中,就是角色继承了。 Spring Security 中为开发…
SpringSecurity—核心组件UserDetailsService
UserDetails => Spring Security基础接口,包含某个用户的账号,密码,权限,状态(是否锁定)等信息。只有getter方法。Authentication => 认证对象,认证开…
SpringBoot—整合SpringSecurity(基于数据库的认证)
在前面的 SpringBoot—整合SpringSecurity(安全框架) 里讲了对登录的用户名/密码进行配置,有三种不同的方式: 在 application.properties 中进行配置通过 …
SpringBoot—整合SpringSecurity(方法安全)
方法安全 SpringSecurity除了可以配置登录这些之外还可以给方法加密,限制访问方法,只有规定的人才可以访问这个角色。 通常采用的三个注解,就是@Secured(), @PreAuthoriz…
SpringSecurity—WebSecurityConfigurerAdapter(自定义配置入口)
自定义 Spring Boot Web 安全配置类 我们使用我们最擅长的 Ctrl + C 、Ctrl + V 抄源码中的 SpringBootWebSecur…
SpringBoot—整合SpringSecurity(安全框架)
Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用的并不多,安全管理…
Mysql—多表连接查询
在一般的业务情况下,我们大致将 Mysql多表连接 分为如下几种: 内连接:INNER JOIN – 可简写为 JOIN; 左外连接:LEFT OUTER JOIN – 可简写为 LEFT JOIN;…
Mybatis一对一、一对多、多对多查询(补充)
场景:使用三张数据表:student学生表、teacher教师表、position职位表 一个学生可以有多为老师、一位老师可以有多个学生、但是一个老师只能有一个职位:教授、副教授、讲师;但是一个职位可…
SpringBoot—Redis缓存(Cache)
经过Spring Boot的整合封装与自动化配置,在Spring Boot中整合Redis已经变得非常容易了,开发者只需要引入Spring Data Redis依赖,然后简单配下redis的基本信息,…
Java—Serializable接口(序列化)
工作中我们经常在进行持久化操作和返回数据时都会使用到javabean来统一封装参数,方便操作,一般我们也都会实现Serializable接口,那么问题来了,首先:为什么要进行序列化;其次:每个实体be…
Nginx介绍
基本介绍 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。 N…
SpringBoot—搞定 session 共享
在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是在分布式/集群项目中,Session 共享则是一个必须面对的问题,先看一个简单的架构图: 在这样的架构中,会出…
Spring Data Redis 使用(SSM版)
Spring Data Redis 介绍 Spring Data Redis 是 Spring 官方推出,可以算是 Spring 框架集成 Redis 操作的一个子框架,封装了 Redis 的很多命令…
SpringBoot—操作 Redis
使用 Java 操作 Redis 的方案很多,Jedis 是目前较为流行的一种方案,除了 Jedis ,还有很多其他解决方案。 除了这些方案之外,还有一个使用也相当多的方案,就是 Spring Dat…
Spring Boot 中自定义 SpringMVC 配置,到底继承谁?
用过 Spring Boot 的人都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,…
SpringMVC笔记17—拦截器
SpringMVC 中的拦截器,相当于 Jsp/Servlet 中的过滤器,只不过拦截器的功能更为强大。 拦截器的定义非常容易: @Component public class MyIntercept…
SpringMVC笔记16—静态资源访问
在 SpringMVC 中,静态资源,默认都是被拦截的,例如 html、js、css、jpg、png、txt、pdf 等等,都是无法直接访问的。因为所有请求都被拦截了,所以,针对静态资源,我们要做额外…
SpringMVC笔记15—RESTful
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,…
SpringMVC笔记14—JSON
一、返回JSON 目前主流的 JSON 处理工具主要有三种: jacksongsonfastjson 在 SpringMVC 中,对 jackson 和 gson 都提供了相应的支持,就是如果使用这两…
SpringMVC笔记13—@ModelAttribute
@ModelAttribute 这个注解,主要有两方面的功能: 在数据回显时,给变量定义别名定义全局数据 1.定义别名 在数据回显时,给变量定义别名,非常容易,直接加这个注解即可: @RequestM…
SpringMVC笔记12—数据回显基本用法
1.数据回显基本用法 数据回显就是当用户数据提交失败时,自动填充好已经输入的数据。一般来说,如果使用 Ajax 来做数据提交,基本上是没有数据回显这个需求的,但是如果是通过表单做数据提交,那么数据回显…
SpringMVC笔记11—服务端数据校验
为什么需要服务器端校验 最早的校验,就是服务端校验。早期的网站,用户输入一个邮箱地址,校验邮箱地址需要将地址发送到服务端,服务端进行校验,校验成功后,给前端一个响应。有了JavaScript,校验工作…