SpringSecurity—AuthenticationManagerBuilder (认证管理器分析)
SecurityBuilder 有它的一个重要实现 HttpSecurity,在 SecurityBuilder 的实现类里边,还有一个重要的分支,那就是 AuthenticationManagerB…
SpringSecurity—同时对接多个用户表(多数据源)
如果我们需要两个不同的 userdetailsservice 来实现不同平台查询不同的用户,怎么实现呢? 其实这个问题的核心点就是 ProviderManager 只要懂了这个, 其他的就很容易 。 …
SpringSecurity—AuthenticationManager(用户的全局和局部定义)
在 SpringSecurity 中有很多种定义用户的方式,尝试不同的用户定义可以有助于我们更好的理解SpringSecurity的源码部分! 基于 SpringSecurity 多个过滤器链来展示:…
SpringSecurity—OAuth 2-Spring Cloud 安全管理
微服务架构 在微服务中,我们一般都会有一个网关,网关背后有很多个微服务,所有的请求都是首先到达网关,再由网关转发到不同的服务上去。另外我们可能会搭建一个统一认证中心,我画一个已经过简化的架构图大家来看…
SpringSecurity—OAuth 2(十)OAuth2 结合 JWT
传统的 session 来记录用户认证信息的方式我们可以理解为这是一种有状态登录,而 JWT 则代表了一种无状态登录。无状态登录天然的具备单点登录能力,所以这个技术组合小伙伴们还是很有必要认真学习下。…
SpringSecurity—OAuth 2(九)第三方应用优化
依旧是基于授权码模式改造: http://www.enmalvi.com/2020/09/12/springsecurity-oauth-2-2/ 前面我们所写的第三方登录,我们在 Controlle…
SpringSecurity—OAuth 2(八)客户端信息入库
还是根据授权码进行改造: http://www.enmalvi.com/2020/09/12/springsecurity-oauth-2-2/ 客户端信息我们是直接存储在内存中的,像下面这样: //…
SpringSecurity—OAuth 2(七) 令牌存入 Redis
令牌往哪里存 在我们配置授权码模式的时候,有两个东西当时存在了内存中: InMemoryAuthorizationCodeServices 这个表授权码存在内存中。 InMemoryTokenStor…
SpringSecurity—OAuth 2(六)刷新Token
刷新Token,是四种授权模式共有的功能。 以授权码模式为例,当我们启动 auth-server 之后,在 IntelliJ IDEA 中,我们可以看到项目暴露出来的接口: http://www.en…
SpringSecurity—OAuth 2(五)客户端模式
客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提供商"进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中…
SpringSecurity—OAuth 2(四)密码模式
密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。 在这种模式中,用…
SpringSecurity—OAuth 2(三)简化模式
简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了"授权码"这个步骤,因此得名。所有步骤在浏览器中完成,令牌对访问者是可见的,且…
SpringSecurity—OAuth 2(二)授权码模式
授权码(authorization code)方式,指的是第三方应用先申请一个授权码,然后再用该码获取令牌。 这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传…
SpringSecurity—OAuth 2(一)
OAuth OAuth 是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等),而在这个过程中无需将用户名和密码提供给第三方应用。实现这一功能是通过提供…
Java—JJWT使用
其中JAVA语言到(2018-06)有6个实现库,如下图: 按顺序依次是 Auth0实现 的 java-jwt Brian Campbell实现的 jose4j connect2id实现的 nimbu…
Java—使用Jwt(Token令牌)
什么是JWT 提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。 令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的…
Java—自定义注解
插入式注解处理API可以让你在编译期访问注解元数据,处理和自定义你的编译输出,像反射一样访问类、字段、方法和注解等元素,创建新的源文件等等。可用于减少编写配置文件的劳动量,提高代码可读性等等。 htt…
Maven—pom文件详细解析
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in…
Java —最常用的工具类
在 Java 中,工具类通常用来定义一组执行通用操作的方法。本篇将会向大家展示 它们最常用的方法。 1、IOUtils org.apache.commons.io.IOUtils,操作 IO 流的工具…
Java —final 和 effectively final区别
在早期的版本中,本地类,匿名类访问本地变量都需要是final的。 但是1.8版本中,本地类和匿名类,还有lambda表达式访问本地变量已经不用声明为final了,仅仅是不用明确写为final,其实还是…
Java—LinkedHashMap
但俗话说了,“金无足赤人无完人”,HashMap 也不例外。有一种需求它就满足不了,假如我们需要一个按照插入顺序来排列的键值对集合,那 HashMap 就无能为力了。因为为了提高查找效率,HashMa…
Java—HashMap
单线程环境下最重要的就是 ArrayList 和 LinkedList,多线程环境下最重要的就是 CopyOnWriteArrayList。 HashMap 是一个 Map,用来存储 key-valu…
Java—CopysOnWriteArrayList(线程安全)
CopyOnWriteArrayList:CopyOnWriteArrayList这是一个ArrayList的线程安全的变体,其原理大概可以通俗的理解为:初始化的时候只有一个容器,很常一段时间,这个容…
Mybatis-Plus—多数据源
特性 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持数据库敏感配置信息 加密 ENC()。支持每个数据库独立初始化表结构schema和数据库database。支持 自…
SQL Server—trigger触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 触发器对表进行插入、更新、删除的时候会自动执行…
Java—利用触发器监听sqlserver数据库
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 触发器对表进行插入、更新、删除的时候会自动执行…