当前 Spring Security 版本:5.1.5-RELEASE [Spring Cloud Security 官方文档] [Spring Security 官方文档]
一、入门
Spring Security 基于 Servlet 快速入门案例
二、自定义登录用户信息
Spring Security 默认会提供用户名密码。 正常情况下,都会采取自定义登录用户信息的方式。
2.1、写入到配置文件中
例如:
eureka
等引入认证模块时,直接通过配置文件的方式提供简易认证
2.2、基于内存管理用户信息
2.3、自定义用户信息获取
该方式更灵活,可以实现基于任意存储介质方式的用户信息托管,DB、文件等。 实现原理:实现
UserDetailsService
接口实现用户信息获取逻辑,并将该类配置到Spring Security
执行链中
2.3.1、实现 UserDetailService
2.3.2、配置类
三、自定义界面
Spring Security 默认提供了登录页面等。 在实际开发中更多是使用自定义的界面。
四、权限控制-基于配置文件
Spring Security 作为权限框架,就是为了控制资源的访问。
五、权限控制-基于注解
基于配置的方式进行权限控制,繁琐,且不易于维护,Spring Security 提供了注解的方式,在各自方法上进行维护的方式。
5.1、开启注解权限认证
5.2、使用案例
六、自动登录功能
在大多情况下,需要提供用户自动登录的功能,避免频繁重新登录。 实现原理:通过 cookie 的方式维护有相关 key-value 的关系,key - 无意义的随机字符 , value - 用户session 信息。请求携带 key ,系统自动校验 session 信息,验证通过无需在登录即可获取访问信息。
6.1、Spring Security 内置基于内存的自动登录
6.2、自定义基于其他存储介质的自动登录(如:redis)
七、通用企业级案例
基于基础 RBAC 模型。
前后分离式开发案例。
7.1、功能介绍
- 自动登录(存储介质 - redis)
- 自定义用户信息(存储介质 - MySQL + Redis)
- 自定义登录处理逻辑
- 自定义认证失败处理逻辑
- 基础API(菜单、用户信息获取等)
- 基础案例:权限注解校验案例
codezip.txt (转zip)