自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 Spring Security之RememberMe

其实就是“记住我”功能。在我们工作/生活中,总会存在被打断的情况,临时需要去做其他事情。而当我们想回来继续处理的时候,通常都会发现,网页已经退出登录态了。也就是开发同学常说的,session超时了。而“记住我”则可以完美解决该问题。除此之外,对于移动端的APP而言,也有同样的妙用。可以让用户长时间保持登录态。“记住我”意味着,只要用户不是主动退出的,都应该认为用户还处于登录态。RememberMe可以作为保持登录态的一种手段,减少用户频繁使用系统的操作。

2024-10-07 21:24:38 962

原创 Spring Security之多点登录控制

是否还在为怎么禁止多点登录而烦恼?不妨来参考下SpringSecurity如何实现的吧。相较于其他框架完全自定义实现来说,SpringSecurity提供了开箱即用的多点登录控制哦。

2024-09-03 20:58:48 1269 1

原创 Spring Security之登录跳转

SpringSecurity是如何跳转到登录前的请求的?这个可就涉及到异常处理过滤器和认证过滤器的协同了。感兴趣的,进来看看哦

2024-08-19 23:50:19 952

原创 Spring Security之安全异常处理

在Spring Security中,特指对于安全异常的处理。我们知道Spring Security主要是基于过滤器来实现的,因此每个安全过滤器都可能发生安全异常,所以处理逻辑会被散落在各个过滤器中。Spring自然是不能忍受这种设计,于是就有了专门的安全异常处理。注:下文我们都用异常处理来代指安全异常处理。异常处理体系包括异常定义分两类 —— 认证异常、访问拒绝异常(鉴权异常)

2024-07-17 23:44:26 1620 2

原创 Spring Security之认证信息的处理

我们通常将当前用户信息保存在session中,由HttpSessionSecurityContextRepository来管理。在请求进入后,先通过SecurityContextPersistenceFilter将HttpSessionSecurityContextRepository中的SecurityContext恢复到SecurityContextHolder,这样后续的处理就能通过它来获取SecurityContext了。

2024-05-19 19:04:00 1132

原创 MybatisPlus优雅实现加密?

成也萧何,败也萧何。MybatisPlus优雅实现字段加解密方案让我吃了不少苦头。只因为他并不改造mybatis,只是提供一些特性。然而,这个方案使用的是半吊子的特性,导致有的方法生效,有的方法不生效,可谓是一言难尽。。。

2024-05-17 23:36:28 1479

原创 Spring Security之Session管理

对于UsernamePasswordAuthenticationFilter而言,SessionManagementFilter有点名不副实,因为前者登录成功后就会自己调用SessionAuthenticationStrategy。因此学习session管理,我们的重点是SessionAuthenticationStrategy。

2024-04-21 16:06:55 2110

原创 Spring Security之认证过滤器

上回我们探讨了关于Spring Security,着实复杂。这次咱们聊的认证过滤器就先聊聊认证功能。涉及到多方协同的功能,咱分开聊。也给小伙伴喘口气,嘻嘻。此外也是因为只有登录认证了,才有后续的更多功能集成的可能。

2024-03-24 14:38:40 1181 1

原创 Spring Security之基于HttpRequest配置权限

前面我们探索了基于方法的权限配置方式,今天我们聊聊最为常用的基于HttpRequest的权限配置方式。

2024-03-24 14:37:42 2165 6

原创 Spring Security之配置体系

Spring Security的配置体系关系着我们能否用好Spring Security,也关系着我们能否按照自己的需要配置Security。同时,他也关系着Spring Security是如何构建安全框架的。

2024-03-24 14:35:37 1140

原创 Spring Security之基于方法配置权限

基于方法的权限配置的介绍,包括使用场景和设计以及其实现原理

2024-03-10 18:04:02 1789 1

原创 Spring Security之认证与授权的概念

登录认证与授权的概念,与SpringSecurity的支持

2024-03-10 18:01:22 1211

原创 Spring Security概述快速入门

官方概述Spring Security是一款提供认证、授权、以及针对常见(网络)攻击的防御的框架。它为保护命令式和反应式应用程序提供了一流的支持,是保护基于Spring的应用程序的事实标准。从官方的介绍,我们可以看到他就是为基于Spring的应用量身定制的。这也是为什么我们如果使用Spring MVC/Spring Boot继承Spring Security如此丝滑的原因。认证授权、以及针对常见(网络)攻击的防御记住着三个关键词,因为他直接代表着Spring Security提供的三大核心功能/特性。

2024-03-10 18:00:17 1056

原创 记RestTemplateBuilder奇诡的坑

RestTemplateBuilder怎么设置都不能跳过检验Https证书。但是直接创建RestTemplate就可以。最终发现RestTemplateBuilder的骚操作,每个方法都重新构建一个Restemplate。一旦断开流式调用,又不重新给变量赋值就会导致设置的属性不生效。因为根本就没设置进去!!!

2023-09-16 11:48:32 309

原创 【探索SpringCloud】服务发现-Nacos服务端数据结构和模型

Nacos2.x的数据是如何存储的?Nacos1.x的逻辑数据结构在Nacos2.x中又是怎么实现的?今天我们就来从源码深度刨析,揭开这两问题的神秘面纱!

2023-09-02 11:47:47 1077 1

原创 【探索SpringCloud】服务发现-Nacos使用

以Nacos为例,了解服务发现,本文先聊聊怎么使用,先入门。后面再聊聊实现。

2023-08-13 11:35:09 823

原创 【探索SpringCloud】服务发现

今天,我们来聊聊SpringCloud服务发现。主要有如下几个议题:一、服务发现的概念与方案;二、SpringCloud是如何与各个服务注册厂商进行集成的。

2023-05-14 21:17:38 966 1

原创 【探索Spring Cloud】SpringCloud与RPC

不管是Spring Cloud还是Spring Cloud Alibaba,愿景都是做微服务框架。而Spring Cloud Alibaba针对Spring Cloud的这些功能/抽象能力提供具体实现。微服务必然是建立在RPC的基础之上构建的,必然包括RPC。

2023-03-18 23:15:06 1950 5

原创 探索SpringMVC-DispatcherServlet

DispatcherServlet的结构分为两个层次。一个是javax的,另一个则是spring的。DispatcherServlet的初始化基于Servlet的生命周期函数init方法初始化的。在该函数中完成WebApplicationContext的初始化,并在上下文refresh之后,初始化DispatcherServlet的相关组件。DispatcherServlet的处理过程大致分为三大步骤初始化请求:包括封装请求、处理重定向参数。

2023-01-21 21:27:26 909

原创 探索SpringMVC-组件之ViewResolver

我们知道视图技术有很多种,例如:JSP、FreeMarker、Thymeleaf等。如果直接操作这些技术,那简直不要太糟糕。为了统一操作,SpringMVC抽象出来两个接口:ViewResolver和View。任何视图技术都需要实现这两个接口

2023-01-18 22:46:43 984

原创 探索SpringMVC-组件之HandlerExceptionResolver

如果理解了[RequestMappingHandlerAdapter](https://blog.csdn.net/Evan_L/article/details/128602901)那么再来理解这个ExceptionHandlerExceptionResolver应该相对简单些,只需要重点理解两个点:1. @ExceptionHandler的出现的位置:@ControllerAdvice和@Controller。2. @ExceptionHandler的分层设计。

2023-01-12 05:50:49 462

原创 探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter

在前面理解了参数解析、返回值处理,我们来了解整个RequstMappingHandlerAdapter是怎么设计和串联的。

2023-01-11 15:31:33 789

原创 探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter-返回值处理

处理器返回值常用的可以被分为两类:@ResponseBody和视图相关的数据。除此之外,还有响应式的异步请求的数据。这里@ResponseBody和@RequsetBody都是由RequestResponseBodyMethodProcessor(既是参数解析器,也是返回值处理器)处理,都是基于HttpMessageConverter。HandlerAdapter在调用目标处理器后,更多的支持都是为了后续的视图做准备。

2023-01-08 16:40:12 801

原创 探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter-参数解析

上回,我们大概讲了下HandlerAdapter。今天带大家来认识一下,我们最常用的RequestMappingHandlerAdapter。不过只能给大家先开个头,讲下参数解析。

2023-01-07 20:30:21 1071

原创 探索SpringMVC-HandlerMapping之RequestMappingHandlerMapping

那么为什么要单独给@RequestMapping实现一个HandlerMapping?这次咱们就来专门看看这个RequestMappingHandlerMapping

2022-12-17 19:10:46 1197

原创 探索SpringMVC-九大组件

今天我们先来看看DispatcherServlet都有哪些组件,分别有什么作用。

2022-12-17 18:27:48 648

原创 探索SpringMVC-DispatcherServlet之HandlerMapping

上回聊了HandlerAdapter,今天继续聊后面的组件。今天的主角是HandlerMapping。

2022-12-11 11:49:56 717

原创 探索SpringMVC-九大组件之HandlerAdapter

上回我们知道,SpringMVC有九大组件。今天我们聊聊负责Handler调用的HandlerAdapter。

2022-12-10 22:19:05 810

原创 探索SpringMVC-web上下文

还记得以前做阅读理解题目的时候吗?老师经常说的一句话是:联系上下文。又比如,你跟淘宝客服聊天,有时候我们总是先把商品发给对方,然后再说这个有没有其他颜色之类的。而这些推动事情继续发展的“背景知识”就可以叫做上下文。回到Spring,像环境配置、bean对象在哪里、事件发布等等,都属于上下文信息。即使,不是直接的进行参与,至少也要能够“联系”到对应的人来处理。例如,BeanFactory。如果从这个角度看的话,还能这样理解,他就是一个信息机构,有点像情报机构。你想要的东西他都能给你找来。

2022-12-02 11:26:23 844

翻译 令人困惑的CAP和ACID措辞

本文翻译自网站:blog.thislongrun.com的一篇博客《[The confusing CAP and ACID wording](http://blog.thislongrun.com/2015/03/the-confusing-cap-and-acid-wording.html)》,之所以会接触到该文章是因为它出现在CAP定理的Wiki百科中的【Refrence参见】

2022-11-06 21:27:52 172

翻译 CAP定理-wiki

当我第一次看到Wiki百科关于CAP定理时,感觉有些原来的疑惑忽然豁然开朗。它甚至引用提出CAP定理的教授大佬的原话,点明可能导致误解的地方。同时,我对比过百度百科的解释,确实不太一样。本文章为Wiki百科的翻译,可能受限于译者水平,希望各位指出有关错误之处。在理论计算机科学中,CAP定理,也以计算机科学家埃里克·布鲁尔的名字命名布鲁尔定理,它声明任何分布式数据存储只能提供以下三种保证中的两种:一致性每次读都能接收到最近的写入(结果)或者一个错误可用性。

2022-11-05 23:37:11 175

原创 maven仓库-阿里镜像-下载问题

相信大家在使用maven的时候都会配置阿里的镜像,以加速jar包的下载。但是当打开开源的源码时,就会报各种包找不到。这很让人恼火。但是其实这是由于我们配置有问题导致的。

2022-09-18 11:59:32 1261

原创 JDK对String操作优化

String就是不可变的值对象,一旦创建就不可更改。这也是我们不管是replace方法,还是substring方法,都是返回一个新的对象的重要原因。String也经常被使用,因此对它的操作跟性能就显得特别重要了。...

2022-07-27 02:44:01 484

原创 ThreadLocal内存泄漏是伪命题?

在研究Mybatis使用多数据源时,发现都是底层的数据源切换逻辑都是基于ThreadLocal。隐约想起,ThreadLocal存在内存泄漏问题。

2022-07-23 23:38:48 242

原创 重新认识Java

说到Java,相信大家都对这么一句口号很熟悉:这也是SUN公司的为宣传Java跨平台特性的口号。但是,回到Java设计之初,他们要怎么实现这个口号呢?下面我们就来简单聊聊。

2022-06-26 17:07:04 291

原创 那些令人懵逼的用户态&内核态

在讨论多线程时,总会不可避免地听到:线程切换损耗、上下文切换,内核态、用户态。这些专有名词还真是不好理解。因为这背后涉及的不仅仅是线程,甚至是计算机硬件与操作系统层面的内容。因此,本文的目的,只是想搞清楚用户态和内核态。...

2022-06-18 23:05:17 605

原创 为什么二进制协议更加高效?

在计算机的世界中,所有的东西都是用二进制表示的。那么,人类语言要想在计算机中进行表示,就需要通过编码。例如在ASCII编码中字母a被表示为0x61=97(十进制),使用8bit来表示一个字符。而在UTF-8编码的unicode字符集,是可变长度的,最多可以用4B=32bit来表示一个字符,例如一个中文字符。因此如果直接用于网络传输,那么需要传输的数据量是比较大的。 有没有办法减少传输的数据呢?当然,那就是二进制协议。既然直接表示人类的自然语言比较费劲,那么是不是可以直接把自然语...

2022-02-28 11:01:55 732

原创 ConcurrentHashMap并发安全的实现原理~java8

前言上一篇聊到Java7,今天来聊聊Java8是怎么保证并发安全的。ConcurrentHashMap in Java8jdk版本:jdk1.8.0_41构造器 /** * Creates a new, empty map with the default initial table size (16). * 创建一个新的空Map,默认初始hash表大小为16(这里依然是延迟实例化,所以构造器中并没有任何代码) */ public Concurrent

2022-02-20 16:40:32 3982 1

原创 ConcurrentHashMap并发安全的实现原理~java7

前言最近看到一些文章,聊到ConcurrentHashMap的时候,总会说:在jdk8之前,ConcurrentHashMap采用的是分段锁来保证并发安全性。而jdk8放弃了分段锁,通过sycronized关键字+CAS来保证并发安全性。虽然大概是这么个意思,但是感觉不够透彻,所以也想斗胆谈谈我的个人见解。ConcurrentHashMap in Java7先说明,我看的是jdk1.7.0_79版本的。默认构造方法 public ConcurrentHashMap() { this

2022-02-19 22:54:49 976

原创 微服务之容错

前言微服务虽然带来了很多好处,但是引入的麻烦也不小。例如:分布式事务,分布式JOB,分布式SESSION等等。今天定个小目标,争取每周学习其中一个小题目。今天先谈谈容错。微服务的容错在微服务架构中,整个系统被拆分为多个独立部署的服务单元。各个服务模块通过rpc调用来完成整个系统的服务功能。那么,对于单一服务而言,不可避免的要面对这个问题:RPC调用失败了怎么办?而导致这个问题的原因可能有:数据问题,导致下游系统失败了。网络出现抖动,导致断线了。发生网络分区了。下游系统挂了。如果说,第一种情

2022-01-16 23:32:51 582

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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