自定义博客皮肤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 中的异常处理机制。在 Spring Security 的过滤器链中,ExceptionTranslationFilter 过滤器专门用来处理异常,在 ExceptionTranslationFilter 中,我们可以看到,异常被分为了两大类:认证异常和授权异常,两种异常分别由不同的回调函数来处理,今天松哥就来和大家分享一下这里的条条框框。1.异常分类Spring Security 中的异常可以分为两大类,一种是认证异常,一种是授权异常。认证异常

2020-06-30 09:05:17 876

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

上篇文章和小伙伴们说了 Spring 源码中 XML 文件的解析流程,本来可以继续往下走看加载核心类了,但是松哥还是希望能够慢一点,既然要学就学懂,在 XML 文件解析的过程中还涉及到一些其他的类和概念,因此我就先用几篇文章介绍一下这些涉及到的概念或者类,然后我们再继续往下看。本文要和大家介绍的是上篇文章中涉及到的 EntityResolver 类,看看这个类到底是干嘛用的。本文是 Spring 源码系列第四篇,阅读前面文章有助于更好理解本文:Spring 源码解读计划Spring 源码第一篇开整

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

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

我们先来看一个简单的配置:@Overrideprotected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .loginProcessingUrl("/doLogin")

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

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

按理说自己 new 出来的对象和容器是没有关系的,但是在 Spring Security 框架中也 new 了很多对象出来,一样也可以被容器管理,那么它是怎么做到的?今天来和大家聊一个略微冷门的话题,Spring Security 中的 ObjectPostProcessor 到底是干嘛用的?本文是 Spring Security 系列第 32 篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么

2020-06-23 12:04:48 804

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

Spring 源码继续开整!上篇文章中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。上篇文章和大家分享了 Spring 中是如何加载本地配置文件的,如何将加载到的本地配置文件通过一个 InputStream 返回。了解到这一点之后,接下来就是对 InputStream 的解析了。本文我们就来看一下整个解析流程是什么样子的。1.XmlBeanDefinitionReade

2020-06-22 09:38:22 518

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

要说在 Spring Boot 中注册过滤器有三种方式,你都能想到哪些呢?今天松哥就来和大家聊一聊 Spring Boot 中注册过滤器的三种方式!其实本来是想和大家聊 Spring Security 过滤器链的问题的,结果看源码看着看着就跑题了,索性就先和大家聊一聊 Spring Boot 中注册过滤器的三种方式,算是给 后面的 Spring Security 打一点基础。1.@WebFilter通过 @WebFilter 注解来标记一个过滤器,这种方式相信大家很容易想到。这是将 Servlet 中

2020-06-19 08:43:53 1433

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

关于密码加密的问题,松哥之前已经和大家聊过了,参考:Spring Boot 中密码加密的两种姿势!这篇文章中,松哥给大家介绍了两种密码加密方案,但是两种都是独立使用的!能不能在同一个项目中同时存在多种密码加密方案呢?答案是肯定的!今天松哥就来和大家聊一聊,如何在 Spring Security 中,让多种不同的密码加密方案并存。本文是 Spring Security 系列第 31 篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 S

2020-06-18 10:09:31 1873

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

Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Security 提供的方式做授权,也可以自定义授权逻辑。一句话,你想怎么玩都可以!今天松哥来和大家介绍一下 Spring Security 中四种常见的权限控制方式。表达式控制 URL 路径权限表达式控制方法权限使用过滤注解动态权限四种方式,我们分别来看。本文是 Spring Security

2020-06-17 09:21:49 2330

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

HttpBasic 认证有一定的局限性与安全隐患,因此在实际项目中使用并不多,但是,有的时候为了测试方便,开启 HttpBasic 认证能方便很多。因此松哥今天还是来和大家简单聊一聊 Spring Security 中的 HttpBasic 认证。本文是 Spring Security 系列第 29 篇,阅读前面文章有助于更好理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么解密了手把手教你定制 Spring Secur

2020-06-16 10:08:17 1450

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

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

2020-06-15 09:32:42 810

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

文章目录1.什么是跨域2.解决方案2.1 存在的问题3.SpringSecurity3.1 方式一3.2 方式二4.OAuth25.小结跨域这个问题松哥之前写过文章,但是最近收到小伙伴们的一些问题,让我发现之前的总结不够全面,因此打算再写一篇文章,来和大家分享一下 Spring Boot 中的跨域问题。这次我把 Spring Boot 中的跨域问题分为了三个场景:普通跨域Spring Security 跨域OAuth2 跨域分为三种并非多此一举,主要是因为这三种场景的配置都不太一样,而这三种

2020-06-11 08:30:50 1356

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

来自一个小伙伴在微信上的提问:看到这个问题,松哥忽然想到我自己之前写过 Spring Boot+Swagger 的用法:SpringBoot 整合 Swagger2也写过 OAuth2 + Jwt 的用法:想让 OAuth2 和 JWT 在一起愉快玩耍?请看松哥的表演但是还没有将这两个结合在一起写过,所以小伙伴们对此有了疑问,想一想这还是一个非常常见的问题,因为现在使用令牌登录的场景越来越多,在这种情况下,如果使用 Swagger 来测试接口,要怎么在请求头中携带 Token 呢?今天松

2020-06-09 08:37:57 3082

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

最近的又一头扎进 Spring Security+CAS 上面了,CAS 单点登录已经连续写了四篇了,小伙伴们一定按顺序阅读哦,这样后面的文章才好理解。上篇文章和大家分享了 CAS Server 接入数据库的问题,今天我们来看下如何在 CAS Server 上自定义登录页面,因为正常来说,我们是不会直接用官方给出的登录页面的。本文是 Spring Security 系列第 26 篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring

2020-06-08 09:34:03 1799

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

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

2020-06-05 09:10:18 1061

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

前面松哥发过两篇文章,也是两种方案,讲到单点登录问题:OAuth2+JWT 方案@EnableOAuth2Sso 注解方案今天再来和大家介绍第三种方案,使用 Spring Security 开发 CAS 单点登录系统客户端。上篇文章讲了 CAS 单点登录以及 CAS Server 的搭建问题,CAS Server 搭建好了,接下来我们要搭建具体的应用,本文我们就来看看 Spring Security+CAS 如何实现单点登录。本文在上篇文章的基础上继续完成,如果小伙伴们的 CAS Server

2020-06-04 21:31:00 1681

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

本文是微服务项目代码组织形式三部曲中的第三篇,也是最后一篇,通过这三篇文章,相信大家对于如果组织微服务中的代码已经有了一个基本认知,前面两篇分别是:微服务项目搭建,到底要不要聚合工程?在微服务项目中,Maven 真的适合管理公共代码库吗?第三篇相对来说要简单一些,本来没打算写,但是上周有个小伙伴问了我一个 Maven 问题,然后我就发现有的小伙伴对聚合工程的认知还是不到位,因此才有了这篇文章,想和大家再聊聊聚合工程的问题。1.微服务架构理论上的微服务架构和实际应用的微服务,往往会有一些差异。

2020-06-02 11:21:06 1092

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

松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下:感兴趣的小伙伴戳这里–>Spring Boot+Vue+微人事视频教程我们来看今天的 CAS 单点登录。在微服务以及分布式系统中,单点登录变得越来越普遍,松哥之前也有两篇文章和大家介绍过单点登录的方案:OAuth2+JWT 方案@EnableOAuth2Sso 注解方案这两种方案中,JWT 存在一个注销登录的问题,要费点功夫解决。@EnableOAuth2Sso 注解这种方案不存在注销登录的问题,但是又不

2020-06-01 09:12:29 1955

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