SpringSecurity源码学习
文章平均质量分 96
SpringSecurity源码学习
Tnoodles
读书使人明智,学习使人进步。
展开
-
SpringSecurity源码学习七:OAuth 2.0登录
用户访问应用程序的登录页面,并选择使用 OAuth2 登录。应用程序将用户重定向到授权服务器,以进行身份验证和授权。用户在授权服务器上进行身份验证,并授权应用程序访问其受保护的资源。授权服务器将授权码或访问令牌返回给应用程序。应用程序使用授权码或访问令牌与授权服务器进行通信,以获取用户信息或访问受保护的资源。应用程序使用用户信息进行登录,并为用户创建会话或授权访问受保护的资源。原创 2023-12-17 21:18:46 · 414 阅读 · 0 评论 -
SpringSecurity源码学习六:授权
一般情况下我们要把资源的权限配置到数据库中,一般会配置具体的页面权限,接口权限等。我们依托于数据库做资源权限管理时,是要实现接口FilterInvocationSecurityMetadataSource,去到数据库中查询资源所需的权限集合。//资源权限map集合 private Map < RequestMatcher , Collection < ConfigAttribute > > requestMap;原创 2023-12-17 21:17:43 · 580 阅读 · 0 评论 -
SpringSecurity源码学习五:跨域与跨站请求伪造
跨域是指在网络中,当一个网页的资源(如字体、脚本或样式表)尝试从不同的域名、端口或协议请求数据时,会遇到安全限制问题。这是由于浏览器的同源策略所导致的。同源策略要求网页只能从同一域名下加载资源,而跨域请求则违反了这个策略。为了解决跨域问题,可以采取一些方法,如使用JSONP、CORS、代理服务器等。JSONP是通过动态创建总结起来,跨域是指在网络中由于浏览器的同源策略而限制了不同域名、端口或协议之间的资源请求。通过使用适当的跨域解决方案,可以允许跨域请求并获取所需的数据。原创 2023-10-21 22:49:44 · 477 阅读 · 0 评论 -
SpringSecurity源码学习四:会话管理
会话管理是指在Java应用程序中管理用户会话状态的过程。在Spring框架中,可以使用Spring Session来实现会话管理。Spring Session提供了一种机制,用于在不同的会话存储后端(例如内存、数据库、Redis等)中存储和管理会话数据。通过使用Spring Session,您可以轻松地在Spring应用程序中管理会话。它提供了简单的API,用于创建、读取、更新和删除会话数据。原创 2023-10-21 22:49:03 · 778 阅读 · 0 评论 -
SpringSecurity源码学习三:认证
WebSecurityConfigurerAdapter是Spring Security提供的一个方便的基类,用于自定义安全配置。通过继承WebSecurityConfigurerAdapter类,并重写其中的方法,可以实现对Spring Security的自定义配置。通过对configure方法的重新,我们可以做很多配置。authorizeRequests(): 配置URL的访问权限规则。原创 2023-10-15 23:26:44 · 638 阅读 · 1 评论 -
SpringSecurity源码学习二:异常处理
首先,ExceptionTranslationFilter 调用 FilterChain.doFilter(request, response) 来调用应用程序的其他过滤器。如果用户没有被认证,或者是一个 AuthenticationException,那么就开始认证,SecurityContextHolder 被清理掉。HttpServletRequest 被保存起来,这样一旦认证成功,它就可以用来重放原始请求。AuthenticationEntryPoint 用于请求客户的凭证。原创 2023-10-15 23:25:47 · 865 阅读 · 0 评论 -
SpringSecurity源码学习一:过滤器执行原理
在 上图中,一个请求进来会进入web容器中,从上到下按顺序执行过滤器。当执行到DelegatingFilterProxy过滤器中,会代理到FilterChainProxy类中。FilterChainProxy 决定应该使用哪个 SecurityFilterChain。只有第一个匹配的 SecurityFilterChain 被调用。原创 2023-10-07 22:31:43 · 1154 阅读 · 0 评论