当前 Spring Security 版本:5.1.5-RELEASE [Spring Cloud Security 官方文档] [Spring Security 官方文档]

一、入门

Spring Security 基于 Servlet 快速入门案例

二、自定义登录用户信息

Spring Security 默认会提供用户名密码。 正常情况下,都会采取自定义登录用户信息的方式。

2.1、写入到配置文件中

例如: eureka 等引入认证模块时,直接通过配置文件的方式提供简易认证

image.png

2.2、基于内存管理用户信息

image.png

2.3、自定义用户信息获取

该方式更灵活,可以实现基于任意存储介质方式的用户信息托管,DB、文件等。 实现原理:实现 UserDetailsService 接口实现用户信息获取逻辑,并将该类配置到 Spring Security 执行链中

2.3.1、实现 UserDetailService

image.png

2.3.2、配置类

image.png

三、自定义界面

Spring Security 默认提供了登录页面等。 在实际开发中更多是使用自定义的界面。

image.png

四、权限控制-基于配置文件

Spring Security 作为权限框架,就是为了控制资源的访问。

image.png

五、权限控制-基于注解

基于配置的方式进行权限控制,繁琐,且不易于维护,Spring Security 提供了注解的方式,在各自方法上进行维护的方式。

5.1、开启注解权限认证

image.png

5.2、使用案例

image.png

六、自动登录功能

在大多情况下,需要提供用户自动登录的功能,避免频繁重新登录。 实现原理:通过 cookie 的方式维护有相关 key-value 的关系,key - 无意义的随机字符 , value - 用户session 信息。请求携带 key ,系统自动校验 session 信息,验证通过无需在登录即可获取访问信息。

6.1、Spring Security 内置基于内存的自动登录

image.png

6.2、自定义基于其他存储介质的自动登录(如:redis)

七、通用企业级案例

基于基础 RBAC 模型。
前后分离式开发案例。

7.1、功能介绍

  • 自动登录(存储介质 - redis)
  • 自定义用户信息(存储介质 - MySQL + Redis)
  • 自定义登录处理逻辑
  • 自定义认证失败处理逻辑
  • 基础API(菜单、用户信息获取等)
  • 基础案例:权限注解校验案例

codezip.txt (转zip)