Spring Security
文章平均质量分 67
深入浅出Spring Security 笔记
buffeer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第21章 OAuth2LoginAuthenticationWebFilter 之AuthenticationSuccessHandler
当认证成功后(获取用户信息),会进行认证成功回调。我们可以配置自定义的Handler来处理认证成功后业务代码。原创 2022-08-21 17:03:43 · 1359 阅读 · 1 评论 -
第20章 OAuth2LoginAuthenticationWebFilter 之ReactiveAuthenticationManager认证授权管理器
在上一篇我们分析了如何把请求转换成 Authentication 认证信息对象。接下来,我们将分析ReactiveAuthenticationManager如何来认证授权,它内部的工作流程是如何的。原创 2022-08-21 17:00:04 · 2827 阅读 · 0 评论 -
第19章 OAuth2LoginAuthenticationWebFilter 之ServerAuthenticationConverter
当然,如果我们不想使用默认的实现类,我们也可以自己单独配置。return http . csrf() . disable() . oauth2Login(oauth2Login -> oauth2Login // 传入自定义的 ServerAuthenticationConverter 实现类 . authenticationConverter(. . .) . build();} }...原创 2022-08-14 16:02:09 · 1308 阅读 · 1 评论 -
第18章 OAuth2LoginAuthenticationWebFilter 之请求匹配器ServerWebExchangeMatcher
在上一篇我们分析到了OAuth2LoginAuthentiationWebFilter会拦截匹配成功的请求路径。哪些请求路径会被拦截、如何去自定义要拦截的请求路径。这两个问题将是今天的主题。原创 2022-07-18 17:59:40 · 1079 阅读 · 2 评论 -
第17章 OAuth2LoginAuthenticationWebFilter 源码解析
SpringBoot OAuth2 Client的授权核心由两个过滤器来实现:OAuth2LoginAuthenticationWebFilter过滤器就是今天主要分析的主角。OAuth2LoginAuthenticationWebFilter过滤器依赖很多类:实现了如下功能:以下思维导图主要描述OAuth2LoginAuthenticatioinWebFilter依赖的类,方便我们能够对其清晰直观的了解。OAuth2LoginAuthticationWebFilter过滤器继承了 Authenticat原创 2022-07-10 10:43:46 · 839 阅读 · 0 评论 -
第16章 OAuth2AuthorizationRequestRedirectWebFilter源码解析
OAuth2AuthorizationRequestRedirectWebFilter 过滤器源码分析原创 2022-07-03 09:52:18 · 760 阅读 · 0 评论 -
第15章 Spring Security OAuth2 初始
Spring Security OAuth Login 认证授权原创 2022-07-02 16:13:36 · 1240 阅读 · 0 评论 -
第12章 Spring Security JWT登录
什么是JWTJWS 是 JSON Web Token 的缩写,用JSON作为对象在系统之间安全地传输信息。关于JWT更多信息,请参考阮一峰的 JSON Web Token 入门教程注意:本章是基于第三章 Spring Security基于数据库登录实现的Maven依赖<!-- 新增redis依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifa原创 2021-10-29 16:00:00 · 269 阅读 · 0 评论 -
第10章 Spring Security HTTP认证
HTTP Basic认证HTTP Basic认证是用户的用户名和密码经过 Base64 编码以后,放在请求头 Authorization 字段中,从而完成用户身份认证。配置@Overrideprotected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and()原创 2021-10-27 20:07:55 · 492 阅读 · 0 评论 -
第9章 Spring Security CSRF防御
Spring Security默认就已经开启CSRF防御。什么是CSRFCSRF 是浏览器跨站伪造请求,黑客可以诱导用户执行一些用户意想不到行为,它允许攻击者部分绕开 同源策略。例如,当用户登录系统A后,用户可以修改自己的邮箱,然后浏览器提交请求如下POST /email/change HTTP/1.1Host: vulnerable-website.comContent-Type: application/x-www-form-urlencodedContent-Length: 30Coo原创 2021-10-23 09:33:31 · 475 阅读 · 0 评论 -
第8章 Spring Security 会话
本章节就学习Spring Security会话的应用。例如,配置会话并发数、会话固定攻击与防御、Session共享等等。会话并发管理会话并发管理是指当前用户可以在系统存在多少会话,默认情况,会话是没有限制。当然我们配置一个用户只能有一个会话,这样就可以显示踢人下线。配置基于前面配置改造,这里主要罗列最主要的配置代码@Configurationpublic class UserWebSecurityConfig extends WebSecurityConfigurerAdapter {原创 2021-10-20 16:22:16 · 2593 阅读 · 0 评论 -
第7章 Spring Security RememberMe
在许多应用软件我们都可以看到 RememberMe 选项。如果我们勾选的话,下次访问就无须再登录。那么Spring Security是怎么实现 RememberMe 功能呢?我们基于数据库存储token的方式来实现 RememberMe。RememberMe配置这里配置是针对第4章改造的。这里主要替换 UserWebSecurityConfig 的 configure 方法@Overrideprotected void configure(HttpSecurity http) throws Exce原创 2021-10-18 19:49:34 · 182 阅读 · 0 评论 -
第6章 Spring Security 密码加密器
Spring Security内置许多密码加密器PasswordEncoder接口PasswordEncoder 接口表示密码器,负责密码校验、加密。public interface PasswordEncoder { // 加密 String encode(CharSequence var1); // 密码比对 boolean matches(CharSequence var1, String var2); // 是否需要对密码进行升级 default原创 2021-10-17 21:33:11 · 403 阅读 · 0 评论 -
第5章 Spring Security 认证剖析
在之前章节只是分析过滤器,并没有仔细地去分析认证这一块。现在我们来仔细分析一下认证详细流程。认证时序图UsernamePasswordAuthenticationFilter 过滤器会调用 attemptAuthentication 方法进行认证。在 attemptAuthentication 方法内部会根据传递进来的 username 和 password 封装成 UsernamePasswordAuthenticationToken 对象,并由 AuthenticationManager 管理器调用原创 2021-10-15 17:20:59 · 179 阅读 · 0 评论 -
第4章 Spring Security 基于数据库的登录认证
一般来说,我们的用户信息都是存放在数据库中的,本章节就基于数据库来完成认证与授权。数据库设计这里需要三张表:user(用户信息表)、role(角色表)、user_role(用户与角色关系表)。一般来说,角色与权限相关,所以用户具有什么样的角色,就拥有什么样的权限。create table `user` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password`原创 2021-10-14 17:21:11 · 229 阅读 · 0 评论 -
第3章 Spring Security 认证Authentication
在Spring Security中 Authentication 对象代表认证用户的数据对象,包含一些用户基本信息(用户名、密码)。Authentication接口public interface Authentication extends Principal, Serializable { // 获取用户权限 Collection<? extends GrandtedAuthoriry> getAuthorities(); // 获取用户凭证,一般就是密码原创 2021-10-13 21:10:57 · 624 阅读 · 0 评论 -
第2章 Spring Security登录认证流程
Spring Security登录认证流程在上一章节,我们看到未登录时,请求被拦截然后重定向到登录页面。那Spring Security登录认证流程是怎样的呢?现在,来分析一下。认证流程图这幅图大致描述登录认证流程:首先访问未被授权的请求 /private 资源FilterSecurityInterceptor 过滤器拒绝这个请求并抛出 AccessDeniedException 的异常。因为请求没有被认证,ExceptionTranslationFilter 将开始认证并且重定向到一个地址原创 2021-10-10 17:59:10 · 294 阅读 · 0 评论 -
第1章 Spring Security搭建
maven依赖Spring Security框架是用来提供安全登录的。这里我选择Spring Boot来搭建 Spring Security,来学习。首先我们需要引入的maven依赖如下:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency&原创 2021-10-09 17:22:19 · 213 阅读 · 0 评论
分享