![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring security
文章平均质量分 72
欢谷悠扬
这世上有一种英雄主义,那就是看清了生活的真相,依然热爱生活
展开
-
SpringSecurity过滤器链涉及组件绘图总结(十五)
1.请求到SpringSecurity过滤器流程汇总图1.请求发送到服务器端口,被tomcat监听到并转化为request,response2.请求在tomcat中进入过滤器链ApplicationFilterChain3.进入过滤器DelegatingFilterProxy(SpringSecurity创建并注入到过滤器链)4.通过DelegatingFilterProxy持有的bean名称,从Spring容器中获取FilterChainProxy5.FilterChainProxy 持有多条过原创 2021-07-16 14:34:00 · 672 阅读 · 4 评论 -
Spring Security默认过滤器链之FilterSecurityInterceptor(十四)
1.作用这个主要是针对http请求进行权限校验权限校验需要注意的几点:1.用户需要先认证2.获取资源所需授权3.获取用户被授权信息4.授权校验5.授权成功处理6.授权失败处理2.直接开撸2.1 参数封装public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 先构建了一原创 2021-07-15 16:35:20 · 881 阅读 · 1 评论 -
Spring Security默认拦截器链解析(十三)
1.SessionManagementFilter 会话管理器见名知意,会话管理器。主要是管理SecurityContext到会话中去。主要内容:1.防止重复执行2.sessionAuthenticationStrategy session认证处理策略sessionAuthenticationStrategy主要是用于在非匿名身份认证时,可以自定义策略去对HttpSession进行相关操作。典型用途是确保会话存在或更改会话 ID 以防止会话固定攻击ChangeSessionIdAuthent原创 2021-07-14 14:17:59 · 1482 阅读 · 3 评论 -
Spring Security默认过滤器链解析(十二)
1.DefaultLoginPageGeneratingFilter 默认登录页生成从名字就可以看出,这是默认登录页生成过滤器。内容比较简单,就简单过一下。public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) r原创 2021-07-13 14:39:23 · 725 阅读 · 2 评论 -
SpringSecurity默认过滤器链之UsernamePasswordAuthenticationFilter
1.作用这个Filter是通过用户名和密码进行认证(登录)的。系统默认有三种认证Filter。ClientCredentialsTokenEndpointFilter: 基于oauth2 token的认证入口Oauth2ClientAuthenticationProcessingFilter:oauth2 客户端用于从授权服务器获取accessToken进行认证2.认证统一流程AbstractAuthenticationProcessingFilterpublic void doFilte原创 2021-07-12 19:18:55 · 1662 阅读 · 3 评论 -
SpringSecurity默认过滤器链解析之LogoutFilter(十)
1.LogoutFilter 退出登录处理器这个其实就是个专门处理退出登录请求的处理器, 默认的退出登录请求是/logout 。当然你也能自定义的。在继承WebSecurityConfigurerAdapter后重写configure(HttpSecurity http)方法,在这个方法里可以配置。至于如何配置,网上很多,我这里就不讲了~源码解析:public void doFilter(ServletRequest req, ServletResponse res, FilterChain c原创 2021-07-09 14:40:25 · 846 阅读 · 1 评论 -
Spring Security之默认的过滤器链的CsrfFilter(九)
1.什么是CsrfCSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。通俗的说,就是你用你浏览器缓存的认证信息和用户信息,通过另外一个钓鱼网站去访问你现原创 2021-07-09 14:09:55 · 568 阅读 · 2 评论 -
Spring Security之HeaderWriterFilter(八)
1.作用这个主要是个response写安全响应头信息的。默认主要包含五个头信息第一个:org.springframework.security.web.header.writers.XContentTypeOptionsHeaderWriter头信息:X-Content-Type-Options=nosniff 作用: 这个是帮助script 和 styleSheet 元素拒绝包含错误的 MIME 类型的响应。这是一种安全功能,有助于防止基于 MIME 类型混淆的攻击。第二个:org.spr原创 2021-07-08 15:32:41 · 1163 阅读 · 2 评论 -
Spring Security 之默认过滤器链的SecurityContextPersistenceFilter(七)
1.SecurityContextPersistenceFilter 是干啥的SecurityContextPersistenceFilter 是用来在认证之前从SecurityContextRepository获取SecurityContext,然后放入SecurityContextHolder中。在其他方法执行完毕之后,将SecurityContext 通过SecurityContextRepository存储到想要存储的地方,然后清理掉SecurityContextHolder中的Security原创 2021-07-08 14:20:19 · 416 阅读 · 2 评论 -
SpringSecurity之默认过滤器链的WebAsyncManagerIntegrationFilter(六)
1.背景在默认过滤器链中,总共有15个过滤器,它们每个都承载了不同的角色和功能。它的匹配也比较霸气是anyRequest。就是其他人都配不上的时候,我来接盘。2.WebAsyncManagerIntegrationFilter是干什么的?WebAsyncManager 是一个异步请求管理器,主要就是针对异步请求如何能和同步请求一样对一些数据进行处理。Spring Security在这里的WebAsyncManagerIntegrationFilter就是用来管理在异步请求中SecurityCon原创 2021-07-07 14:33:44 · 486 阅读 · 2 评论 -
Spring Security之SecurityFilterChain的选择与执行流程(五)
1.FilterChainProxy去找过滤器链去了~FilterChain 是过滤器链,我好像之前一直说的拦截器链(尴尬)在上一篇中,我们知道FilterChainProxy 拿到了三条过滤器链,那FilterChainProxy如何根据请求去选择呢?每个SecurityFilterChain都有一个RequestMatcher 匹配器,这个匹配器中可以放置多个url或者通配符表达式进行匹配,匹配成功就直接返回这个过滤器链的过滤器集合。所以SecurityFilterChain其实也不是过滤器原创 2021-07-07 11:08:49 · 2078 阅读 · 2 评论 -
Spring Security 之 DelegatingFilterProxy 到 FilterChainProxy完成 security 的安全接入(四)
1.重聊DelegatingFilterProxyRegistrationBean在前几篇中一直聊的一个东西就是将springSecurityFilterChain注入到servletContext容器中完成请求拦截。而注入的方式是通过DelegatingFilterProxyRegistrationBean来完成,这个类的主要目的是为了包装DelegatingFilterProxy 类,并且实现自动注入到servletContext的流程所以DelegatingFilterProxyRegistr原创 2021-07-06 14:25:17 · 969 阅读 · 4 评论 -
Spring security 之 tomcat到springSecurityFilterChain拦截器过程分析(三)
1.前景提要springSecurityFilterChain是一个DelegatingFilterProxyRegistrationBean的对象。在第二篇中,我们分析得知,spring security通过注入DelegatingFilterProxyRegistrationBean对象到spring 容器中来使 servlet 容器在初始化的过程中能够获取并初始化到自己的过滤器链中去。2.加入servlet 容器拦截器链中的springSecurityFilterChain如何运作这里原创 2021-07-05 14:54:21 · 1029 阅读 · 5 评论 -
Spring Security之springSecurityFilterChain注册到sevlet的过程(二)
1.基于上帝视角的分析在上一篇中,分析了springSecurityFilterChain是在哪进行进行创建的,以及如何将这个bean注入到spring 容器中去。最后发现是通过spring-boot-autoconfigure.jar包中的org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration来完成的。springSecurityFilterChain这个在哪加入到servlet容器中的,其实原创 2021-07-03 18:38:46 · 835 阅读 · 1 评论 -
SpringSecurity源码解析之如何注入springSecurityFilterChain到servlet容器完成请求拦截(一)
1.官方文档解读在官方文档中告诉我们,当开启spring security 的默认配置时,spring security 会创建一个名为springSecurityFilterChain的bean来完成所有安全方面的功能。比如:应用程序url保护用户密码认证重定向登录界面登出接口上面都是些基本功能。那么springSecurityFilterChain 是在哪创建的呢?2. springSecurityFilterChain 的创建可以看到 springSecurityFil原创 2021-07-02 19:18:02 · 1070 阅读 · 2 评论