Spring Security Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication)和授权(Authorization)之外,Spring Security还提供了诸如ACLs,LDAP,JAAS,CAS等高级特性以满足复杂场景下的安全需求. Spring Security 应用级别的安全主要包含两个主要部分,即登录认证(Authentication)和访问授权(Authoriz…
Spring Security Oauth2 OAuth是一个关于授权的开放网络标准,在全世界得到的广泛的应用,目前是2.0的版本.OAuth2在“客户端”与“服务提供商”之间,设置了一个授权层(authorization layer).“客户端”不能直接登录“服务提供商”,只能登录授权层,以此将用户与客户端分离.“客户端”登录需要获取OAuth提供的令牌,否则将提示认证失败而导致客户端无法访问服务.关于OAuth2这里就不多作介绍了,网上资料详尽.下面我们实现一个 整合 SpringBoot…
Jedis cluster命令执行流程剖析 在Redis Cluster集群模式下,由于key分布在各个节点上,会造成无法直接实现mget.sInter等功能.因此,无论我们使用什么客户端来操作Redis,都要考虑单一key命令操作.批量key命令操作和多节点命令操作的情况,以及效率问题. 在之前的文章中剖析了Jedis cluster集群初始化源码,分析了源码之后可以得知,在Jedis中,使用的是JedisClusterConnection集群连接类来与Redis集群节点进行命令交互,它使用装…
今天做项目的时候,发现每次拦截器日志都会打两遍,很纳闷,怀疑是Filter被执行了两遍.结果debug之后发现还真是!记录一下这个神奇的BUG! 问题描述 项目中使用的是Spring-security作为权限框架,然后做了一个JwtAuthenticationTokenFilter作为拦截器拦截请求,校验Token,但是每次请求都会打两遍日志.下面是精简的源代码: 自定义的Filter类 @Slf4j @Component public class JwtAuthenticationTokenF…
文章目录 一.认证流程 二.多个请求共享认证信息 三.获取用户认证信息 在前面的六章中,介绍了 Spring Security 的基础使用,在继续深入向下的学习前,有必要理解清楚 Spring Security 的认证流程,这样才能理解为什么要这样写代码,也方便后续的扩展. 一.认证流程 上图是 Spring Security 认证流程的一部分,下面的讲解以上图为依据. (1) 用户发起表单登录请求后,首先进入 UsernamePasswordAuthenticationFilter: 在 Us…
写在前面 上回我们讲了spring security整合spring springmvc的流程,并且知道了spring security是通过过滤器链来进行认证授权操作的.今天我们来分析一下springsecurity过滤器链的加载流程.读者在阅读本文时可以边阅读边跟着操作,这样子会理解的更清楚一些. Spring Security过滤器链 spring security的过滤器非常多,这里简单介绍几个常用的过滤器. spring security常过滤器链介绍 org.springframew…
在了解Spring 文件上传执行流程之前,我们必须知道两点: 1.Spring 文件上传是基于common-fileUpload 组件的,所以,文件上传必须引入此包 2.Spring 文件上传需要在XML中配置文件上传解析器,不然程序无法执行判别 带领着这几个问题去分析Spring 文件上传: 1.文件上传解析器什么时候被初始化,在哪里被DispatcherServlet 引用 2.如何判别我们的请求上传文件的请求 3.传统的fileUpload与Spring被包装后的文件上传比较 问题抛出:…
spring security表单认证过程 表单认证过程 Spring security的表单认证过程是由org.springframework.security.web.authentication. UsernamePasswordAuthenticationFilter类中实现.而在spring security3.0之前是在AuthenticationProcessingFilter类中实现的. 在UsernamePasswordAuthenticationFilter中的参数: pub…
Spring MVC的执行流程 一.名词解释 1.前端控制器(DispatcherServlet) 接收请求,响应结果,相当于转发器,中央处理器 2.处理器映射器(HandlerMapping) 根据请求的url查找Handler(处理器/Controller) 可以通过XML和注解方式实现映射. 3.处理器适配器(HandlerAdapter) 按照HandlerAdapter所要求的规则执行Handler 4.处理器Handler(也称之为Controller) 接收用户请求信息,调用业务方…
Struts2框架 一.简介 Struts2是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架.它基于当年的WebWork和XWork框架,继承其优点,同时做了相当的改进. 1.Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程. 2.使用OGNL进行参数传递.OGNL提供了在Struts2里访问各种作用域的数据的简单方式,你可以方便的获取Request.Attribute.Application.Sessi…