Spring Security
文章平均质量分 94
Spring Security是一个功能强大、高度可定制的身份验证和访问控制框架。它是保护基于spring的应用程序的事实上的标准。
swadian2008
不积跬步,无以至千里;不积小流,无以成江海
展开
-
Spring Security 授权体系结构
例如,在具有“Admin”和“User”角色概念的应用程序中,希望管理员(“Admin”)能够执行普通用户(“User”)的所有操作。用户可以通过实现 AuthorizationManager 接口来自定义授权控制,同时,Spring Security 附带了一个委托 AuthorizationManager,它可以与各个 AuthorizationManager 进行协作。至此,Spring Security 的授权架构介绍完毕,在这篇文章中,更多的是方法论,具体的使用细节将在后续文章中进行补充。原创 2023-07-25 17:44:55 · 708 阅读 · 0 评论 -
Spring Security 身份验证的基本类/架构
用作验证用户凭据的基本过滤器。在对凭证进行身份验证之前,Spring Security 通常会使用来请求凭证。doFilter 源码】//总流程//身份认证过滤器的处理流程if (!} else {try {//1- 尝试进行身份验证return;//2-如果验证成功,创建新会话,更新sessionId//3-调用认证成功后处理流程//4-调用认证失败后处理流程//4-调用认证失败后处理流程接下来,可以对提交给它的任何身份验证请求进行身份验证。原创 2023-07-24 11:22:01 · 1182 阅读 · 0 评论 -
Spring Security 的工作原理/总体架构
这些过滤器的排序是Spring官方提供的,后来Spring可能觉得这样展示的意义不大,删去了这部分内容, 补充了一些从日志查看过滤器加载顺序的说明。//首先说,这里就是 Spring Security 的工作原理,重中之重,非常重要,虽然讲的是一个异常过滤器,但是实际上是一个执行流程。// 在Spring 中,Spring 管理过滤器的生命周期,所以 Filter 实例也是 Spring 中的一个Bean。//见名知意,过滤器链的代理 FilterChainProxy 中会持有过滤器链的对象。原创 2023-07-20 17:18:21 · 676 阅读 · 0 评论 -
Spring Security - Spring Security Architecture(Spring安全框架的体系结构)
目录1. Introduction(简介)2. Authentication(认证) & Access Control(访问控制)2.1 Authentication(认证)2.2 Customizing Authentication Managers(自定义认证管理器)2.3 Authorization or Access Control(授权或访问控制)3. Web Security(Web安全)3.1 Web Security基本组件3.2 Creating and Customizing Filte翻译 2022-08-06 11:14:56 · 446 阅读 · 0 评论 -
spring security OAuth2 实战
OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方应用访问存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth在全世界得到广泛应用,目前的版本是2.0版。OAuth协议:https://tools.ietf.org/html/rfc6749OAuth 基本概念Third-party application:第三方应用程序,又称"客户端"(client),比如京东商城。原创 2022-09-18 15:01:26 · 2528 阅读 · 9 评论 -
spring security 用户授权原理
SecurityMetadataSource其实就是读取访问策略的抽象,读取的内容就是我们配置的访问规则。进入权限验证决策方法,AccessDecisionManager#decide,AccessDecisionManager 有三个实现,默认使用 AffirmativeBased,其中两种决策方式,文章后边也会介绍。3. 最后,FilterSecurityInterceptor 会调用 AccessDecisionManager 进行授权决策,若决策通过,则允许访问资源,否则将禁止访问。原创 2022-09-12 17:39:15 · 648 阅读 · 0 评论 -
spring security 用户授权/访问控制
授权的方式包括 web 授权和方法授权,web授权是通过 url 拦截进行授权,方法授权是通过方法拦截进行授权。他们都会调用 accessDecisionManager 进行授权决策,若为web授权则拦截器为FilterSecurityInterceptor;若为方法授权则拦截器为MethodSecurityInterceptor。如果同时通过web 授权和方法授权则先执行web授权,再执行方法授权,最后决策通过,则允许访问资源,否则将禁止访问。原创 2022-09-12 09:12:04 · 1810 阅读 · 0 评论 -
spring security 会话管理
用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保存在会话中。spring security 提供会话管理,认证通过后将身份信息放入SecurityContextHolder上下文,SecurityContext与当前线程进行绑定,方便获取用户身份。...原创 2022-08-28 18:29:03 · 2141 阅读 · 1 评论 -
spring security 用户认证原理
在程序的调用链中,找到一个 StandardWrapperValve 的记录,StandardWrapperValve.class 类位于 tomcat 核心包中,跟踪到这个调用位置(StandardWrapperValve#invoke),可以看到过滤器链的调用。用户名和密码认证过滤器继承了 AbstractAuthenticationProcessingFilter.calss,该过滤器的 #doFilter 方法中,调用了用户名和密码认证过滤器中用户认证的逻辑。调用认证管理器的具体实现进行权限验证。.原创 2022-08-27 11:15:19 · 1196 阅读 · 0 评论 -
spring security 身份认证代码入门
默认情况下,UserDetailsServiceAutoConfiguration.class 自动化配置类会创建一个内存级别的InMemoryUserDetailsManager对象,提供认证的用户信息。添加 spring.security.user 配置项,UserDetailsServiceAutoConfiguration 会基于配置的信息在内存中创建一个用户User。未添加 spring.security.user 配置项,UserDetailsServiceAutoC原创 2022-08-27 11:13:01 · 541 阅读 · 0 评论