![](https://img-blog.csdnimg.cn/20190108231033306.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring Security 分析
文章平均质量分 53
源代码分析,架构分析,应用例子
安迪源文
小步快走
展开
-
Spring Security Config : AbstractInterceptUrlConfigurer
概述介绍AbstractInterceptUrlConfigurer是Spring Security Config的一个HttpSecurity安全配置器抽象基类。它定义了一个为HttpSecurity配置FilterSecurityInterceptor的安全配置器的通用行为逻辑。具体定义如下 :接口SecurityConfigurer约定的配置方法 configure对目标安全构建...原创 2019-06-22 18:49:23 · 1029 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 RequestCacheConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,RequestCacheConfigurer的配置任务如下 :配置如下安全过滤器FilterRequestCacheAwareFilter属性RequestCache requestCache 的设置流程如下 :首先尝试从共享对象获取其次尝试从bean IoC容器获取最后...原创 2019-06-16 14:34:31 · 1253 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 ServletApiConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,ServletApiConfigurer的配置任务如下 :配置如下安全过滤器FilterSecurityContextHolderAwareRequestFilter过滤器的属性authenticationManager来自共享对象AuthenticationManager过滤器的属性authen...原创 2019-06-16 13:16:18 · 637 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 SecurityContextConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,SecurityContextConfigurer的配置任务如下 :配置如下安全过滤器FilterSecurityContextPersistenceFilter如果存在共享对象SecurityContextRepository,则使用它作为安全上下文存储库,否则创建一个实现类型为HttpSessi...原创 2019-06-16 12:42:02 · 1397 阅读 · 0 评论 -
Spring Security : 概念模型 SecurityContext 安全上下文
概述介绍Spring Security使用接口SecurityContext抽象建模"安全上下文"这一概念。这里安全上下文SecurityContext指的是当前执行线程使用的最少量的安全信息。当一个线程在服务用户期间,该安全上下文对象会保存在SecurityContextHolder中。SecurityContextHolder类提供的功能是保持SecurityContext,不过它的用法...原创 2019-06-14 10:46:33 · 5944 阅读 · 0 评论 -
Spring Security : AbstractSecurityInterceptor 实现类清单
名称对应Secure Object类型对应SecurityMetadataSource类型简介MethodSecurityInterceptorMethodInvocationMethodSecurityMetadataSource1. 由Spring Security Core提供; 2. 被Spring Security Core应用于方法调用的授权控制3.基于S...原创 2019-06-12 16:55:46 · 4086 阅读 · 1 评论 -
Spring Security : AccessDecisionVoter 实现类清单
名称支持Secure Object类型支持ConfigAttribute类型WebExpressionVoterFilterInvocationWebExpressionConfigAttributeJsr250VoterMethodInvocationJsr250SecurityConfigPreInvocationAuthorizationAdvice...原创 2019-06-12 16:47:20 · 1027 阅读 · 0 评论 -
Spring 授权 (Authorization) 流程要点
1. 授权前提所有的认证令牌对象Authentication保存了一组GrantedAuthority对象,表示授予访问者(当事人principal)的权限。1. GrantedAuthority对象是被AuthenticationManager在认证访问者期间插入到Authentication中的。这些GrantedAuthority对象会被AccessDecisionManager在对该...原创 2019-06-11 18:43:01 · 3110 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 AnonymousConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,AnonymousConfigurer的配置任务如下 :配置如下安全过滤器FilterAnonymousAuthenticationFilter增加了一个AnonymousAuthenticationProvider其实是增加到了目标HttpSecurity的共享对象Authenticatio...原创 2019-06-10 18:30:28 · 1743 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 FormLoginConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,FormLoginConfigurer的配置任务如下 :配置如下安全过滤器FilterUsernamePasswordAuthenticationFilter创建的共享对象AuthenticationEntryPointFormLoginConfigurer使用到的共享对象有 :...原创 2019-06-09 20:56:25 · 2129 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 HttpBasicConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,HttpBasicConfigurer的配置任务如下 :配置如下安全过滤器FilterBasicAuthenticationFilter创建的共享对象AuthenticationEntryPoint缺省是 BasicAuthenticationEntryPoint在配置过程...原创 2019-06-09 19:06:39 · 1291 阅读 · 0 评论 -
Spring Security Web : AuthenticationEntryPoint 认证入口点及其实现类简介
AuthenticationEntryPoint简介AuthenticationEntryPoint是Spring Security Web一个概念模型接口,顾名思义,他所建模的概念是:“认证入口点”。它在用户请求处理过程中遇到认证异常时,被ExceptionTranslationFilter用于开启特定认证方案(authentication schema)的认证流程。该接口只定义了一个方法...原创 2019-06-09 18:22:57 · 40043 阅读 · 5 评论 -
Spring Security Config : HttpSecurity安全配置器 HeadersConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,HeadersConfigurer的配置任务如下 :配置如下安全过滤器FilterHeaderWriterFilterHeadersConfigurer自己内置定义了一组特定头部的配置类并允许使用者配置,这些配置类每个其实对应一个相应的头部写入器HeaderWriter。除此之外,Headers...原创 2019-06-09 17:33:02 · 5556 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 PortMapperConfigurer
概述介绍并不做任何配置,只是创建一个共享对象 : PortMapper。缺省使用的PortMapper实现类是PortMapperImpl,用于在HTTP和HTTPS两种协议的端口之间做跳转 : 80–> 443, 8080 --> 8443 。继承关系使用 // HttpSecurity 代码片段 public PortMapperConfigurer<H...原创 2019-06-09 00:31:04 · 689 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 CsrfConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,CsrfConfigurer的配置任务如下 :配置如下安全过滤器FilterCsrfFilter对应#requireCsrfProtectionMatcher方法指定的RequestMatcher会应用CSRF保护,如果#requireCsrfProtectionMatcher没有被使用者调用,使用...原创 2019-06-09 00:13:33 · 2470 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 CorsConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,CorsConfigurer的配置任务如下 :配置如下安全过滤器FilterCorsFilter如果CorsConfigurer上设置了属性configurationSource,则基于它创建一个CorsFilter并使用;否则如果名称为corsFilter的bean存在,则使用该CorsFilt...原创 2019-06-08 20:08:37 · 2831 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 LogoutConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,LogoutConfigurer的配置任务如下 :配置如下安全过滤器FilterLogoutFilter会根据所设置的logoutUrl,logoutRequestMatcher,以及配置器CsrfConfigurer中是否启用csrf保护等信息构建最终所使用的退出LogoutRequestMat...原创 2019-06-08 19:25:23 · 1973 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 DefaultLoginPageConfigurer
概述介绍作为一个配置HttpSecurity的SecurityConfigurer,DefaultLoginPageConfigurer的配置任务如下 :配置如下安全过滤器FilterDefaultLoginPageGeneratingFilter仅在没有通过FormLoginConfigurer指定一个登录页面时应用创建如下共享对象DefaultLoginPag...原创 2019-06-08 18:06:22 · 1210 阅读 · 0 评论 -
Spring Security Config : UserDetailsManagerConfigurer
概述介绍UserDetailsManagerConfigurer是Spring Security Config提供的一个安全配置器基类,用于配置安全构建器ProviderManagerBuilder,它继承自UserDetailsServiceConfigurer。UserDetailsManagerConfigurer对来自基类的能力作了如下定义 :改造定义 : 约定所使用的UserDe...原创 2019-06-02 19:32:01 · 628 阅读 · 0 评论 -
Spring Security Config : UserDetailsServiceConfigurer
概述介绍UserDetailsServiceConfigurer是Spring Security Config提供的一个安全配置器基类,用于配置安全构建器ProviderManagerBuilder,它继承自AbstractDaoAuthenticationConfigurer。UserDetailsServiceConfigurer对来自基类的能力作了如下定义 :扩展定义 : 提供一个初...原创 2019-06-02 17:29:47 · 528 阅读 · 0 评论 -
Spring Security Config : AbstractDaoAuthenticationConfigurer
概述介绍AbstractDaoAuthenticationConfigurer是Spring Security Config提供的一个安全配置器抽象基类,它继承自UserDetailsAwareConfigurer,而UserDetailsAwareConfigurer又继承自SecurityConfigurerAdapter,实现了接口SecurityConfigurer。除了基类和所实现接...原创 2019-06-02 17:08:07 · 672 阅读 · 0 评论 -
Spring Security Config : InMemoryUserDetailsManagerConfigurer
概述介绍InMemoryUserDetailsManagerConfigurer是Spring Security Config提供的一个安全配置器SecurityConfigurer,用来配置一个安全构建器ProviderManagerBuilder(通常可以认为就是AuthenticationManagerBuilder),它为目标安全构建器提供的是一个基于内存存储用户账号详情的用户账号详情...原创 2019-06-02 14:30:09 · 4017 阅读 · 0 评论 -
Spring Security Config : JdbcUserDetailsManagerConfigurer
概述介绍JdbcUserDetailsManagerConfigurer是Spring Security Config提供的一个安全配置器SecurityConfigurer,用来配置一个安全构建器ProviderManagerBuilder(通常就可以认为是ProviderManagerBuilder),它为目标安全构建器提供的是一个基于关系型数据库的用户账号详情管理对象DaoAuthent...原创 2019-06-02 13:21:20 · 3260 阅读 · 1 评论 -
Spring Security : UserDetailsPasswordService
概述介绍UserDetailsPasswordService是Spring Security从5.1版本开始提供的一个接口。它定义了实现类要提供可以修改用户账号密码的能力。比如InMemoryUserDetailsManager就实现了接口UserDetailsPasswordService,可以对自己管理的用户账号的密码进行修改。继承关系源代码源代码版本 : Spring Sec...原创 2019-06-02 11:48:28 · 1991 阅读 · 0 评论 -
Spring Security Config : 用于AuthenticationManagerBuilder的各种安全配置器
在使用AuthenticationManagerBuilder构建AuthenticationManager时,我们通常会遇到以下三种SecurityConfigurer :InMemoryUserDetailsManagerConfigurer基于内存存储用户账号详情的安全配置器,最终生成一个DaoAuthenticationProvider,内含一个UserDetailsServic...原创 2019-06-02 10:26:24 · 4481 阅读 · 0 评论 -
Spring Security Config : SecurityConfigurerAdapter SecurityConfigurer缺省实现类
概述介绍SecurityConfigurerAdapter是Spring Security Config对概念模型接口SecurityConfigurer所提供的缺省实现。它作为一个基类存在,开发人员想实现一个SecurityConfigurer时,可以继承自SecurityConfigurerAdapter,然后仅仅覆盖实现其中感兴趣的方法。具体来讲,SecurityConfigurerAd...原创 2019-06-02 10:05:13 · 4858 阅读 · 2 评论 -
Spring Security Config : AuthenticationManagerBuilder 认证管理器构建器
概述介绍在Spring Security Config中,AuthenticationManagerBuilder是一个SecurityBuilder,其目的是根据所设置的属性构建一个AuthenticationManager(实现类使用ProviderManager)。继承关系使用AuthenticationManagerBuilder典型的用法是 :根据需求设置相应属性;设...原创 2019-05-29 09:53:47 · 10605 阅读 · 2 评论 -
Spring Security : 概念模型接口 UserDetailsManager 用户详情管理器
概述介绍UserDetailsManager是Spring Security的一个概念模型接口,用于抽象建模对用户详情的管理这一概念。它继承自接口UserDetailsService,是对UserDetailsService接口的能力扩展。UserDetailsService定义了根据用户名获取用户详情的能力,UserDetailsManager在此基础上增加定义了如下能力 :创建用户账...原创 2019-05-29 08:40:46 · 2564 阅读 · 0 评论 -
Spring Security : 概念模型接口 UserDetailsService 用户详情服务
概述介绍UserDetailsService是Spring Security提供的一个概念模型接口,用于抽象建模系统提供这样一种服务能力:管理用户详情。UserDetailsService只定义了一个方法UserDetails loadUserByUsername(String username) throws UsernameNotFoundException,声明通过用户名usernam...原创 2019-05-28 18:35:00 · 1969 阅读 · 2 评论 -
Spring Security Config : WebSecurityConfigurerAdapter
概述介绍WebSecurityConfigurerAdapter是Spring Security Config内置提供的一个WebSecurityConfigurer抽象实现类。WebSecurityConfigurerAdapter存在的目的是提供一个方便开发人员配置WebSecurity的基类。它提供了一组全方位配置WebSecurity的缺省方法实现。开发人员只要继承WebSecurit...原创 2019-05-28 09:19:10 · 9814 阅读 · 0 评论 -
Spring Security Config : 概念模型 WebSecurityConfigurer Web安全配置器
概述介绍WebSecurityConfigurer是Spring Security Config的一个概念模型接口,用于建模"Web安全配置器"这一概念模型。WebSecurityConfigurer被设计用于配置"Web安全构建器"WebSecurity对象,自身并没有定义任何方法,但是它继承自接口SecurityConfigurer,表明这是一个"安全配置器"。并且从定义中可以看出,We...原创 2019-05-26 11:01:53 · 1082 阅读 · 0 评论 -
Spring Security Web 应用遇到了 RequestRejectedException 怎么办 ?
在我们开发使用Spring Security的Web应用时,有的时候会遇到RequestRejectedException,这时候应该怎么办呢 ?实际上,RequestRejectedException是Spring Security的防火墙机制抛出的。如果遇到了该异常,开发人员可以从以下几个方面是不是存在问题 :请求路径中是否包含./,/../,/.等字符串序列,这些字符串序列会被认为是有...原创 2019-05-26 10:40:57 · 15549 阅读 · 0 评论 -
Spring Security Web : FirewalledResponse 经过防火墙加强安全的响应
概述功能介绍FirewalledResponse是Spring Security Web提供的一个HttpServletResponse实现,是一个带有防火墙增强安全能力的HttpServletResponse实现,被HttpFirewall对象用于对一个HttpServletResponse进行安全增强的包装器。通过FirewalledResponse的包装,它对HttpServletRe...原创 2019-05-26 10:26:31 · 2397 阅读 · 0 评论 -
Spring Security Web : DefaultHttpFirewall HTTP防火墙(缺省模式)
概述功能介绍DefaultHttpFirewall是Spring Security Web提供的一个HTTP防火墙(对应概念模型接口HttpFirewall)实现。该实现是所谓的缺省实现,但实际上Spring Security Web缺省使用的并不是DefaultHttpFirewall,而是严格模式的StrictHttpFirewall。其原因主要是StrictHttpFirewall对安全...原创 2019-05-24 18:52:03 · 3078 阅读 · 1 评论 -
Spring Security Web : StrictHttpFirewall HTTP防火墙(严格模式)
概述功能介绍StrictHttpFirewall是Spring Security Web提供的一个HTTP防火墙(对应概念模型接口HttpFirewall)实现,该实现采用了严格模式,遇到任何可疑的请求,会通过抛出异常RequestRejectedException拒绝该请求。StrictHttpFirewall也是Spring Security Web在安全过滤器代理FilterChainP...原创 2019-05-24 10:13:25 · 11404 阅读 · 1 评论 -
Spring Security Web : 概念模型接口 HttpFirewall
概述功能介绍HttpFirewall是Spring Web提供的一个接口,抽象建模HTTP防火墙这一概念。相应对象用于拒绝存在潜在风险的请求或者包装它们以控制它们的行为。该接口的实现类会被注入到FilterChainProxy,在安全过滤器链被调用之前该防火墙逻辑会被调用。如果响应对象的行为需要被限制,该防火墙也可以对响应进行包装再返回给请求方。HttpFirewall只定义了两个接口方法,...原创 2019-05-23 09:08:31 · 1276 阅读 · 0 评论 -
Springboot 自动配置 : SecurityFilterAutoConfiguration
Spring Boot的自动配置类。用于向Servlet容器 注册一个名称为securityFilterChainRegistration的bean, 实现类是DelegatingFilterProxyRegistrationBean。该 bean 的目的是注册另外一个 Servlet Filter bean 到 Servlet 容器,实现类为 DelegatingFilterProxy 。Del...原创 2019-05-20 08:57:45 · 1700 阅读 · 0 评论 -
Spring Security Web : Web安全过滤器链代理对象 FilterChainProxy
FilterChainProxy是Spring Security Web添加到Servlet容器用于安全控制的一个Filter。从Servlet容器的角度来看,Spring Security Web所提供的安全逻辑就是一个Filter,实现类为FilterChainProxy。实际上FilterChainProxy是一个代理对象,FilterChainProxy内部组合了多个SecurityFil...原创 2019-05-19 23:40:44 · 2777 阅读 · 0 评论 -
Spring Security Web : SecurityFilterChain 安全过滤器概念模型
SecurityFilterChain,字面意思"安全过滤器链",是Spring Security Web对匹配特定HTTP请求的一组安全过滤器的抽象建模。这样的一个对象在配置阶段用于配置FilterChainProxy,而FilterChainProxy在请求到达时会使用所持有的某个SecurityFilterChain判断该请求是否匹配该SecurityFilterChain,如果匹配的话,该...原创 2019-05-16 08:45:00 · 6678 阅读 · 0 评论 -
Spring Security : 概念模型 AuthenticationProvider 认证提供者
Spring Security中AuthenticationProvider接口抽象建模了认证提供者这一概念,某个认证提供者能认证符合某种特征的认证令牌Authentication。Spring Security针对常见的一些场景提供了AuthenticationProvider实现,比如RemoteAuthenticationProvider,DaoAuthenticationProvider...原创 2019-05-14 10:39:47 · 675 阅读 · 1 评论