用户权限模型.png
如图,是一种通用的用户权限模型。一般情况下会有5张表,分别是:用户表,角色表,权限表,用户角色关系表,角色权限对应表。
Spring Security和Apache Shiro是两个应用比较多的权限管理框架。Spring Security依赖Spring,其功能强大,相对于Shiro而言学习难度稍大一些。
我们项目是基于Spring Boot的,而且Spring Boot的权限管理也是推荐使用Spring Security的,所以再难也是要学习的。
Spring Security简介
Spring Security致力于为Java应用提供认证和授权管理。它是一个强大的,高度自定义的认证和访问控制框架。
两个关键词:Authentication(认证)和 Authorization(授权,也叫访问控制)
简单地来说,认证就是你是谁,授权就是你可以做什么。
错误:
A component required a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' that could not be found.
答案:
报错的原因就是因为我引入的PasswordEncoder没有被注入到spring bean容器,导致无法启动,所以我们需要手动就PasswordEncoder注入到bean容器中去
@Configuration
public class BrowerSecurityConfig extends WebSecurityConfigurerAdapter {
//手动将PasswordEncoder注入到ioc容器中
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}