SpringSecurity4源码解读
文章平均质量分 68
结合UML图和设计模式解读SpringSecurity4源码,并结合实际项目进行二次开发
json20080301
这个作者很懒,什么都没留下…
展开
-
MVC模式
SPRINGMVC架构图:绿色标记了核心组件原创 2018-03-01 12:43:35 · 294 阅读 · 0 评论 -
shiro与springsecurity4的技术选型
shiro与springsecurity4之间的对比文章很多,喜欢shiro的无非是觉得shiro代码容易阅读,配置简单,而且shiro可以用在非web环境。但如果你是springboot,springcloud的话,springsecurity4才是最合适的选择,三者无缝集成。如果使用springsecurity4的话,该如何定制化自己的身份验证和权限验证呢?以下是自己阅读源码后...原创 2018-02-23 21:20:59 · 4101 阅读 · 0 评论 -
spring框架与设计模式---目录
spring框架与设计模式-- OO基础和OO原则(一个目的、四个特征、五大原则) - CSDN博客http://blog.csdn.net/json20080301/article/details/79362098SPRING与设计模式--策略模式与模板方法模式 - CSDN博客http://blog.csdn.net/json20080301/article/details/79362836S...原创 2018-02-24 16:27:26 · 300 阅读 · 0 评论 -
spring securiy4如何自定义身份认证
本文介绍如何实现用户名加数字签名的方式进行身份认证,顺便分析一下security4框架对身份认证的过程,如果自己要进行业务如何进行扩展。1.在UsernamePasswordAuthenticationFilter之前添加自定义的filter,并设置该filter拦截的登录认证URL请求,注意身份认证的filter只拦截指定的URL请求,其他URL请求不会拦截,见身份认证基类AbstractAut...原创 2018-02-20 14:50:50 · 652 阅读 · 0 评论 -
spring securiy4如何动态加载URL拦截规则
springsecuriy4官方案例中的URL拦截规则在容器初始化时加载完成,后面如果URL拦截规则需求有变化,则只有修改配置,重启容器。通过自定义FilterInvocationSecurityMetadataSource实现类 ProtectedUrlSecurityMetadataSource就可以完成URL拦截规则运行时重新加载。 FilterSecurityInterceptor有一个小...原创 2018-02-20 15:22:06 · 2277 阅读 · 0 评论 -
如何跟踪学习开源框架的源码
准备工作:1.选择一个好工具IDEA (eclipse 也可以,本文主要是以idea为例讲解)DEBUG教程见:http://blog.csdn.net/qq_27093465/article/details/774491172.使用maven构建工程,并右键工程 down source 下载框架源码知识准备:1.了解常用设计模式:模板模式 、策略模式、代理模式(jdk内置的代理模式实现机制)、工...原创 2018-02-22 15:43:29 · 3412 阅读 · 0 评论 -
springsecurity核心源码解析
1.FilterChainProxy构造过程2.WebSecurityConfiguration将FilterChainProxy添加到spring容器 @Bean(name = AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME) public Filter springSecurityFilterChain() thro...原创 2018-02-23 21:00:39 · 482 阅读 · 0 评论 -
spring框架与设计模式-- OO基础和OO原则(一个目的、四个特征、五大原则)
一个目的、四个特征、五大原则:软件开发的一个不变真理就是CHANGE变化,变化会带来不经意后果。这种后果往往是出乎意料。OO原则的核心就是把变化的部分取出并封装起来,让其他部分不受变化的影响。减少变化带来的风险。OO基础:抽象 、封装、多态、继承OO设计五大原则 :SRP:单一职责原则。一个类应仅有一个改变的理由。OCP:开闭原则。不应修改已有的类,而应扩展一个类。LSP:里氏替换原则。子类对象能...原创 2018-02-24 16:06:48 · 523 阅读 · 0 评论 -
SPRING与设计模式---观察者模式
SPRING与设计模式---观察者模式观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。其他参考博文:编程模式·观察者模式、事件通知、消息队列三者区别 - 简书https://www.jianshu.com/p/e0c6a0dc84b2《Head Frist 设计模式》学习笔记——观察者模式 - CSDN博客http://blog.csdn.net/...原创 2018-02-24 16:09:40 · 208 阅读 · 0 评论 -
SPRING与设计模式---装饰模式(Decorator)(包装器模式(Wrapper))
SPRING与设计模式---装饰器模式装饰器模式 允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的(如:功能的增强)。实际应用案例:springsession框架使用HTTP请求包装类SessionRepositoryRequestWrapper和Session存储过滤器 SessionRepositoryFilter...原创 2018-02-24 16:10:17 · 3288 阅读 · 0 评论 -
SPRING与设计模式---工厂模式
SPRING与设计模式---工厂模式spring容器就是一个经典的工厂模式实践案例,所有对象的构建都由spring容器完成。UML类图:从类图可以看出来整个spring框架是如何使用设计模式不断强化功能的。从最早的BeanFactory实现类DefaultListableBeanFactory;后面的几个常用接口实现类都是使用装饰器对原有的DefaultListableBeanFactory的功能...原创 2018-02-24 16:10:48 · 416 阅读 · 0 评论 -
SPRING与设计模式--单件模式
SPRING与设计模式--单件模式单体模式是一种常用的模式,顾名思义就是一个类只允许有一个实例。springsecurity大都使用饿汉模式,在类加载时就创建好了实例。其他模式见:https://www.jianshu.com/p/c7ca51d2816e AnyRequestMatcher源码:package org.springframework.security.web.util.match...原创 2018-02-24 16:11:27 · 315 阅读 · 0 评论 -
SPRING与设计模式----命令模式
SPRING与设计模式----命令模式原创 2018-02-24 16:12:00 · 1580 阅读 · 1 评论 -
SPRING与设计模式----适配器与外观模式
SPRING与设计模式----适配器与外观模式适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。适配器充满良好的OO设计原则:使用对象组合,以修改接口包装被适配者。实际应用场景:旧系统改造,适应新系统的接口。外观facade模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。实际应用场景:新旧系统兼容改造,对...原创 2018-02-24 16:12:46 · 622 阅读 · 0 评论 -
SPRING与设计模式---迭代器与组合模式
SPRING与设计模式---迭代器与组合模式原创 2018-02-24 16:13:28 · 669 阅读 · 1 评论 -
SPRING与设计模式---代理模式
SPRING与设计模式---代理模式原创 2018-02-24 16:14:40 · 276 阅读 · 1 评论 -
SPRING与设计模式---生成器模式
SPRING与设计模式---生成器模式使用场景:当一个产品(对象)构造过程很复杂时,使用生成器模式封装产品的构造过程,并允许按步骤构造。springsecurity4构造FilterChainProxy并添加到容器中的过程1.使用HttpSecurity构造DefaultSecurityFilterChain就使用到了生成器模式,见UML类图:源码:使用FilterComparator对filte...原创 2018-02-24 16:16:43 · 473 阅读 · 0 评论 -
SPRING与设计模式---责任链模式
SPRING与设计模式---责任链模式 使用场景:当你想让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式。spring框架中的应用:spring安全框架security使用责任链模式,框架使用者可以动态地添加删除责任(处理request请求)。UML类图:活动图:源码解析:currentPosition表示责任链的要处理请求链条节点的位置,使用additionalFilters来依次...原创 2018-02-24 16:17:20 · 7409 阅读 · 0 评论