日记53
今天给用户模块加上了权限管理功能,核心是Spring Security的基础应用。首先引入 spring-boot-starter-security 依赖,然后创建配置类继承 WebSecurityConfigurerAdapter ,重写 configure 方法配置拦截规则——给 /login 放行,给 /user/** 设置需要 USER 权限,给 /admin/** 设置需要 ADMIN 权限。
接着实现用户详情服务类,实现 UserDetailsService 接口,重写 loadUserByUsername 方法,从数据库查询用户信息并封装成 UserDetails 对象,同时设置用户的角色权限。测试时,用普通用户账号访问 /admin/user/list 会被拒绝,用管理员账号则能正常访问。踩了个坑:忘记给密码加加密器,导致登录时报密码不匹配错误,添加 BCryptPasswordEncoder 并配置后解决。
小结:Spring Security的核心是用户详情服务和拦截规则配置,权限和角色的区分要清晰。
浙公网安备 33010602011771号