自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 一个案例演示 Spring Security 中粒度超细的权限控制!

想要细化权限控制粒度,办法很多。本文接着上文(Spring Security 中如何细化权限粒度?),通过一个具体的案例来向小伙伴们展示基于 Acl 的权限控制。其他的权限控制模型后面也会一一介绍。 1.准备工作 首先创建一个 Spring Boot 项目,由于我们这里涉及到数据库操作,所以除了 ...

2020-09-17 15:25:24 1914 0

原创 Spring Security 中如何细化权限粒度?

有小伙伴表示微人事(https://github.com/lenve/vhr)的权限粒度不够细。不过松哥想说的是,技术都是相通的,明白了 vhr 中权限管理的原理,在此基础上就可以去细化权限管理粒度,细化过程和还是用的 vhr 中用的技术,只不过设计层面重新规划而已。 当然今天我想说的并不是这个话...

2020-09-16 09:27:29 723 3

原创 Spring Security 权限管理的投票器与表决机制

今天咱们来聊一聊 Spring Security 中的表决机制与投票器。 当用户想访问 Spring Security 中一个受保护的资源时,用户具备一些角色,该资源的访问也需要一些角色,在比对用户具备的角色和资源需要的角色时,就会用到投票器和表决机制。 当用户想要访问某一个资源时,投票器根据用户...

2020-09-12 11:21:10 930 2

原创 Spring Security 中如何让上级拥有下级的所有权限?

答案是能! 松哥之前写过类似的文章,但是主要是讲了用法,今天我们来看看原理! 本文基于当前 Spring Security 5.3.4 来分析,为什么要强调最新版呢?因为在在 5.0.11 版中,角色继承配置和现在不一样。旧版的方案我们现在不讨论了,直接来看当前最新版是怎么处理的。 1.角色继承案...

2020-09-09 17:02:08 996 6

原创 什么是计时攻击?Spring Boot 中该如何防御?

松哥最近在研究 Spring Security 源码,发现了很多好玩的代码,抽空写几篇文章和小伙伴们分享一下。 很多人吐槽 Spring Security 比 Shiro 重量级,这个重量级不是凭空来的,重量有重量的好处,就是它提供了更为强大的防护功能。 比如松哥最近看到的一段代码: protec...

2020-09-02 12:08:21 2240 2

原创 一个诡异的登录问题

美好周末,从解 BUG 开始! 周五本来想早点下班,临了有一个简单的需求突然提上来,心想着整完了就走,没想到一下折腾了 1 个多小时才搞定,愉快的周末就从加班中开启了。回到家里把这件事复盘一下,小伙伴们看看是否能够从中 GET 到一些未知的东西。 需求是这样的: 项目是 Spring Boot 项...

2020-08-31 10:47:19 465 2

原创 为什么你使用的 Spring Security OAuth 过期了?

最近一段时间,大家在用 Spring Security OAuth2 时可能发现有很多类过期了。 大家在选择 OAuth2 依赖的时候,可能也会困惑,有好几个地方都可以选: 那么到底选择哪一个依赖合适呢?这不同的依赖又有什么区别?今天松哥就来和大家聊一聊 Spring Security 中关于...

2020-08-28 09:44:08 1144 1

原创 Spring 源码第 8 篇,各种属性的解析

Spring 源码解析第 8 篇,继续。 上篇文章我们分析了 bean 标签的解析过程,但是主要是涉及到一些简单的属性,一些冷门属性如 lookup-method 等没有和大家分析,主要是考虑到这些属性大家可能用得少,因此我上周录制了一个简单的视频,先带领小伙伴们复习了一下这些冷门属性的用法: S...

2020-08-24 09:34:27 551 1

原创 Spring 源码解读第七弹!bean 标签的解析

Spring 源码解读继续。 本文是 Spring 系列第八篇,如果小伙伴们还没阅读过本系列前面的文章,建议先看看,这有助于更好的理解本文。 Spring 源码解读计划 Spring 源码第一篇开整!配置文件是怎么加载的? Spring 源码第二弹!XML 文件解析流程 Spring 源码第三弹...

2020-08-10 08:56:23 3403 5

原创 盘点 Spring Security 框架中的八大经典设计模式

上次有小伙伴建议,源码分析太枯燥了,要是能够结合设计模式一起来,这样更有助于大家理解 Spring Security 源码,同时还能复习一波设计模式。 因此松哥今天就试着整一篇,和大家来聊一聊 Spring Security 中涉及到的设计模式,不过 Spring Security 中涉及到的设计...

2020-07-30 09:33:32 748 1

原创 深入理解 WebSecurityConfigurerAdapter【源码篇】

我们继续来撸 Spring Security 源码,今天来撸一个非常重要的 WebSecurityConfigurerAdapter。 我们的自定义都是继承自 WebSecurityConfigurerAdapter 来实现的,但是对于 WebSecurityConfigurerAdapter 内...

2020-07-29 09:40:17 745 1

原创 花式玩 Spring Security ,这样的用户定义方式你可能没见过!

有的时候松哥会和大家分享一些 Spring Security 的冷门用法,不是为了显摆,只是希望大家能够从不同的角度加深对 Spring Security 的理解,这些冷门的用法非常有助于大家理解 Spring Security 的内部工作原理。我本来可以纯粹的去讲源码,讲原理,但是那样太枯燥了,...

2020-07-27 09:20:07 472 1

原创 深入理解 AuthenticationManagerBuilder 【源码篇】

咱们继续来撸 Spring Security 源码。 前面和大家分享了 SecurityBuilder 以及它的一个重要实现 HttpSecurity,在 SecurityBuilder 的实现类里边,还有一个重要的分支,那就是 AuthenticationManagerBuilder,Authe...

2020-07-23 10:14:19 701 1

原创 深入理解 HttpSecurity【源码篇】

HttpSecurity 也是 Spring Security 中的重要一环。我们平时所做的大部分 Spring Security 配置也都是基于 HttpSecurity 来配置的。因此我们有必要从源码的角度来理解下 HttpSecurity 到底干了啥? 1.抽丝剥茧 首先我们来看下 Http...

2020-07-22 11:48:23 1011 1

原创 深入理解 SecurityConfigurer 【源码篇】

我们来继续撸 Spring Security 源码。 SecurityConfigurer 在 Spring Security 中是一个非常重要的角色。在前面的文章中,松哥曾经多次提到过,Spring Security 过滤器链中的每一个过滤器,都是通过 xxxConfigurer 来进行配置的,...

2020-07-21 09:18:55 592 0

原创 深入理解 FilterChainProxy【源码篇】

昨天有小伙伴加松哥微信,说他把松哥的 Spring Security 系列撸完了。。 but 松哥这个系列还没发完呢,在我的计划中,Spring Security 系列目前应该能更新一半,还剩一半,虽然有的小伙伴可能觉得好像已经没啥了,其实还有很多东西。。。 松哥最近也是特别忙,Security...

2020-07-20 09:17:49 524 1

原创 Spring 源码第六弹!容器的始祖 DefaultListableBeanFactory

Spring 源码继续开整! 在 XML 文件解析流程一文中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。 还记得该篇文章中的代码吗? XmlBeanFactory ...

2020-07-15 08:40:57 331 0

原创 Spring Security 可以同时对接多个用户表?

文章目录1.原理1.1 Authentication1.2 AuthenticationManager1.3 ProviderManager1.4 AuthenticationProvider2.案例3.小结 这个问题也是来自小伙伴的提问: 其实这个问题有好几位小伙伴问过我,但是这个需求比较冷门...

2020-07-14 08:35:01 1243 0

原创 Spring Security 竟然可以同时存在多个过滤器链?

这是来自一个小伙伴的提问,我觉得很有必要和大家聊一聊这个问题: 首先这个问题本身是有点问题的,因为 http.authorizeRequests() 并非总是第一个,虽然大部分情况下,我们看到的是第一个,但是也有很多情况 http.authorizeRequests() 不是首先出现。要搞明白这...

2020-07-10 09:11:33 1278 0

原创 Spring 源码第四弹!深入理解 BeanDefinition

聚沙成塔!不知不觉 Spring 源码已经更到第五篇啦~ 看源码之前,要先会用功能,这是最基本的,因为在源码讲解中,默认大家已经熟知 Spring 基本用法了,如果还不熟悉 Spring 的基本用法,可以看一下松哥发布在 B 站上的免费入门视频:https://www.bilibili.com/v...

2020-07-07 07:17:12 699 0

原创 写了这么多年代码,这样的登录方式还是头一回见!

Spring Security 系列还没搞完,最近还在研究。 有的时候我不禁想,如果从 Spring Security 诞生的第一天开始,我们就一直在追踪它,那么今天再去看它的源码一定很简单,因为我们了解到每一行代码的缘由。 然而事实上我们大部分人都是中途接触到它的,包括松哥自己。所以在阅读源码的...

2020-07-03 08:46:09 1496 1

原创 GET 新技能!自己的网站突然就不香了

松哥自己的网站有两大类: 一个就是大家看到的 www.javaboy.org,这个网站是基于 GitHub Pages 做的,使用的技术栈是 hexo+icarus,公众号上的所有文章我都会同步到这个网站上去。 还有一类就是电子书网站,这个就比较多了: http://maven.javaboy...

2020-07-02 09:21:47 3981 4

原创 一文搞定 Spring Security 异常处理机制!

今天来和小伙伴们聊一聊 Spring Security 中的异常处理机制。 在 Spring Security 的过滤器链中,ExceptionTranslationFilter 过滤器专门用来处理异常,在 ExceptionTranslationFilter 中,我们可以看到,异常被分为了两大类...

2020-06-30 09:05:17 1344 0

原创 Spring 源码第三弹!EntityResolver 是个什么鬼?

上篇文章和小伙伴们说了 Spring 源码中 XML 文件的解析流程,本来可以继续往下走看加载核心类了,但是松哥还是希望能够慢一点,既然要学就学懂,在 XML 文件解析的过程中还涉及到一些其他的类和概念,因此我就先用几篇文章介绍一下这些涉及到的概念或者类,然后我们再继续往下看。 本文要和大家介绍的...

2020-06-29 09:35:03 668 2

原创 Spring Security 配置中的 and 到底该怎么理解?

我们先来看一个简单的配置: @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authent...

2020-06-24 08:13:39 1695 3

原创 神奇!自己 new 出来的对象一样也可以被 Spring 容器管理!

按理说自己 new 出来的对象和容器是没有关系的,但是在 Spring Security 框架中也 new 了很多对象出来,一样也可以被容器管理,那么它是怎么做到的? 今天来和大家聊一个略微冷门的话题,Spring Security 中的 ObjectPostProcessor 到底是干嘛用的? ...

2020-06-23 12:04:48 1124 0

原创 Spring 源码第二弹!XML 文件解析流程

Spring 源码继续开整! 上篇文章中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。 上篇文章和大家分享了 Spring 中是如何加载本地配置文件的,如何将加载到的...

2020-06-22 09:38:22 653 0

原创 花式玩 Spring Boot!过滤器竟有 N 种注册方式!松哥手把手教你

要说在 Spring Boot 中注册过滤器有三种方式,你都能想到哪些呢?今天松哥就来和大家聊一聊 Spring Boot 中注册过滤器的三种方式! 其实本来是想和大家聊 Spring Security 过滤器链的问题的,结果看源码看着看着就跑题了,索性就先和大家聊一聊 Spring Boot 中...

2020-06-19 08:43:53 1542 0

原创 Spring Security 多种加密方案共存,老破旧系统整合利器!

关于密码加密的问题,松哥之前已经和大家聊过了,参考: Spring Boot 中密码加密的两种姿势! 这篇文章中,松哥给大家介绍了两种密码加密方案,但是两种都是独立使用的!能不能在同一个项目中同时存在多种密码加密方案呢?答案是肯定的! 今天松哥就来和大家聊一聊,如何在 Spring Secur...

2020-06-18 10:09:31 2014 0

原创 Spring Security 中的四种权限控制方式

Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Security 提供的方式做授权,也可以自定义授权逻辑。一句话,你想怎么玩都可以! 今天松哥来和大家...

2020-06-17 09:21:49 4626 1

原创 Spring Boot 中如何实现 HTTP 认证?

HttpBasic 认证有一定的局限性与安全隐患,因此在实际项目中使用并不多,但是,有的时候为了测试方便,开启 HttpBasic 认证能方便很多。 因此松哥今天还是来和大家简单聊一聊 Spring Security 中的 HttpBasic 认证。 本文是 Spring Security 系列第...

2020-06-16 10:08:17 1552 0

原创 Spring 源码第一篇开整!配置文件是怎么加载的?

上周把话撂出来,看起来小伙伴们都挺期待的,其实松哥也迫不及待想要开启一个全新的系列。 但是目前的 Spring Security 系列还在连载中,还没写完。连载这事,一鼓作气,再而衰三而竭,一定要一次搞定,Spring Security 如果这次放下来,以后就很难再拾起来了。 所以目前的更新还是 ...

2020-06-15 09:32:42 1027 0

原创 Spring Boot 中三种跨域场景总结

文章目录1.什么是跨域2.解决方案2.1 存在的问题3.SpringSecurity3.1 方式一3.2 方式二4.OAuth25.小结 跨域这个问题松哥之前写过文章,但是最近收到小伙伴们的一些问题,让我发现之前的总结不够全面,因此打算再写一篇文章,来和大家分享一下 Spring Boot 中的跨...

2020-06-11 08:30:50 1565 0

原创 用 Swagger 测试接口,怎么在请求头中携带 Token?

来自一个小伙伴在微信上的提问: 看到这个问题,松哥忽然想到我自己之前写过 Spring Boot+Swagger 的用法: SpringBoot 整合 Swagger2 也写过 OAuth2 + Jwt 的用法: 想让 OAuth2 和 JWT 在一起愉快玩耍?请看松哥的表演 但是还没有...

2020-06-09 08:37:57 4054 0

原创 Spring Boot+CAS 默认登录页面太丑了,怎么办?

最近的又一头扎进 Spring Security+CAS 上面了,CAS 单点登录已经连续写了四篇了,小伙伴们一定按顺序阅读哦,这样后面的文章才好理解。 上篇文章和大家分享了 CAS Server 接入数据库的问题,今天我们来看下如何在 CAS Server 上自定义登录页面,因为正常来说,我们是...

2020-06-08 09:34:03 1959 0

原创 Spring Boot+CAS 单点登录,如何对接数据库?

在前面的两篇文章中,松哥和大家分享了 CAS Server 的搭建以及如何使用 Spring Security 搭建 CAS Client。 但是前面的案例有一个问题,就是登录用户是在 CAS Server 配置文件中写死的,没有对接数据库,实际项目中,这里肯定要对接数据库,所以今天,松哥就来和大...

2020-06-05 09:10:18 1213 0

原创 Spring Boot 实现单点登录的第三种方案!

前面松哥发过两篇文章,也是两种方案,讲到单点登录问题: OAuth2+JWT 方案 @EnableOAuth2Sso 注解方案 今天再来和大家介绍第三种方案,使用 Spring Security 开发 CAS 单点登录系统客户端。 上篇文章讲了 CAS 单点登录以及 CAS Server 的搭...

2020-06-04 21:31:00 2438 0

原创 微服务项目中如何管理依赖版本号?

本文是微服务项目代码组织形式三部曲中的第三篇,也是最后一篇,通过这三篇文章,相信大家对于如果组织微服务中的代码已经有了一个基本认知,前面两篇分别是: 微服务项目搭建,到底要不要聚合工程? 在微服务项目中,Maven 真的适合管理公共代码库吗? 第三篇相对来说要简单一些,本来没打算写,但是上周有...

2020-06-02 11:21:06 1358 0

原创 松哥手把手教你入门 Spring Boot + CAS 单点登录

松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下: 感兴趣的小伙伴戳这里–>Spring Boot+Vue+微人事视频教程 我们来看今天的 CAS 单点登录。 在微服务以及分布式系统中,单点登录变得越来越普遍,松哥之前也有两篇文章和大家介绍过单点登录的方案: ...

2020-06-01 09:12:29 2227 1

原创 Spring Security 两种资源放行策略,千万别用错了!

事情的起因是这样,有小伙伴在微信上问了松哥一个问题: 就是他使用 Spring Security 做用户登录,等成功后,结果无法获取到登录用户信息,松哥之前写过相关的文章(奇怪,Spring Security 登录成功后总是获取不到登录用户信息?),但是他似乎没有看懂。考虑到这是一个非常常见的问...

2020-05-28 08:12:12 4242 0

提示
确定要删除当前文章?
取消 删除