Kotlin—日志的使用方法
都知道java中的@Slf4j使用得多么的舒服: @Slf4j public class TestController{ @GetMapping("/test") public String test…
SpringSecurity—权限管理的投票器与表决机制
当用户想访问 Spring Security 中一个受保护的资源时,用户具备一些角色,该资源的访问也需要一些角色,在比对用户具备的角色和资源需要的角色时,就会用到投票器和表决机制。 当用户想要访问某一…
SpringSecurity—从子线程获取用户登录信息
Spring Security 中想要获取登录用户信息,不能在子线程中获取,只能在当前线程中获取,其中一个重要的原因就是 SecurityContextHolder 默认将用户信息保存在 Thread…
SpringSecurity—new 出来的对象一样也可以被 Spring 容器管理
按理说自己 new 出来的对象和容器是没有关系的,但是在 Spring Security 框架中也 new 了很多对象出来,一样也可以被容器管理,那么它是怎么做到的? 有些项目,就会发现里边的动态权限…
SpringSecurity—多种加密方案共存
1.PasswordEncoder 在 Spring Security 中,跟密码加密/校验相关的事情,都是由 PasswordEncoder 来主导的,PasswordEncoder 拥有众多的实现…
SpringBoot—三种跨域场景总结
我把 Spring Boot 中的跨域问题分为了三个场景: 普通跨域Spring Security 跨域OAuth2 跨域 分为三种并非多此一举,主要是因为这三种场景的配置都不太一样,而这三种场景又都…
SpringSecurity—用 Swagger 测试接口,在请求头中携带 Token
1.项目规划 搭建一个 OAuth2+JWT 的环境来做演示。一共搭建两个服务: 我稍微解释一下: auth-server 就是我的资源服务器,用来颁发 JWT 令牌。user-server 则是资源…
SpringSecurity—两种资源放行策略
Spring Security 中,到底该怎么样给资源额外放行? 1.两种思路 在 Spring Security 中,有一个资源,如果你希望用户不用登录就能访问,那么一般来说,你有两种配置策略: 第…
SpringSecurity—CSRF 防御源码解析
主要从两个方面来和大家讲解: 返回给前端的 _csrf 参数是如何生成的。前端传来的 _csrf 参数是如何校验的。 1.随机字符串生成 我们先来看一下 Spr…
SpringSecurity—防御 CSRF 攻击
CSRF 就是跨域请求伪造,英文全称是 Cross Site Request Forgery。 这是一种非常常见的 Web 攻击方式,其实是很好防御的,但是由于经常被很多开发者忽略,进而导致很多网站实…
SpringSecurity—防御会话固定攻击
之前聊了 Spring Security 中的 session 并发问题,如何像 QQ 一样,用户在一台设备上登录成功之后,就会自动踢掉另一台设备上的登录。 当然,Spring Security 中,…
SpringSecurity—自带防火墙
Spring Security 这么麻烦,不如自己写一个 Filter 拦截请求,简单实用。 自己写当然也可以实现,但是大部分情况下,大家都不是专业的 Web 安全工程师,所以考虑问题也不过就是认证和…
SpringSecurity—自动踢掉前一个登录用户
1.需求分析 在同一个系统中,我们可能只允许一个用户在一个终端上登录,一般来说这可能是出于安全方面的考虑,但是也有一些情况是出于业务上的考虑,松哥之前遇到的需求就是业务原因要求一个用户只能在一个设备上…
SpringSecurity—中如何快速查看登录用户 IP 地址等信息
1.Authentication Authentication 这个接口聊过多次,今天还要再来聊一聊。 Authentication 接口用来保存我们的登录用户信息,实际上,它是对主体(java.se…
SpringSecurity—自定义认证逻辑(高级)
之前我们自定义的一个核心思路就是自定义过滤器,在过滤器中做各种各样我们想做的事: 无论是添加登录验证码还是修改登录数据库格式,都需要对认证逻辑作出调整。 http://www.enmalvi.com/…
SpringSecurity—权限管理模型(RBAC)
1.RBAC 简介 RBAC(Role-based access control)是一种以角色为基础的访问控制(Role-based access control,RBAC),它是一种较新且广为使用的…