一、Spring security权限认证框架概念
Spring Security 是一个非常强大的身份验证和授权控制框架。为了满足企业项目的不同需求,它提供了很多定制化开发的解决方案,通过简单的调整配置,就能为我们的应用提供一套可靠的安全保障。
Spring Security 其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在 Spring Security 中一种过滤器处理一种认证方式。比如,对于 username password 认证过滤器来说:
- 会检查是否是一个登录请求;
- 是否包含 username 和 password (也就是该过滤器需要的一些认证信息);
- 如果不满足则放行给下一个。
然后下一个认证过滤器,再次按照自身职责判定是否是自身需要的信息。中间可能还有更多的认证过滤器,只要有一个认证过滤器通过了,就是用户登录成功。
在整个过滤器中的最后一环是 FilterSecurityInterceptor
,这里会判定该请求是否能进行访问 REST 服务,如果被拒绝了就会抛出不同的异常(根据具体的原因)。Exception Translation Filter
会捕获抛出的错误,然后根据不同的认证方式进行信息的返回提示。
二、添加Spring security权限认证框架
1、添加Spring security权限认证框架依赖
<!--security 依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <!--JWT 依赖--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.0</version> </dependency>
2、在application.yml中配置JWT(JWT:实现前后端交互的令牌)
Jwt(JsonWebToken)网络之间进行安全传输信息;这些信息可以用于验证、授权、信息交换,前端使用JWT来实现用户认证,后端可以通过解析JWT来获取用户信息;验证通过后,后端就可以把Token值传给前端;
添加JwtToken的一个工具类
3、Admin实体类实现UserDetailes接口
4、新建一个VO的包用于接受前端传递的值
5、配置SpringSecurity---创建配置类