前段时间做后台管理系统,想着做一个简单的权限管理和URL 访问拦截。
步骤1. 添加spring-security的相关依赖
1.
步骤2. 实现必要的接口
1. implements UserDetails
这里面主要是包含user的常用信息,比如用户名,密码,用户名是否过期,是否被锁。根据自己的需求设定即可。
关键是这个getAuthorities 方法 :这个其实是用户的权限,这个一般就是用户角色了,直接在里面根据用户角色进行实现返回即可
2.implements UserDetailsService
这一步主要是loadUserByUsername,其中返回UserDetails.
3.extends WebSecurityConfigurerAdapter
这一步主要是配置request所需要的角色。
需要注意的地方:
1. 角色必须以“ROLE_”开头,但是在继承WebSecurityConfigurerAdapter的配置里面的hasrole里又不要“ROLE_” 这一部分。
1) 例: 有个角色,ROLE_ADMIN。在WebSecurityConfigurerAdapter里面就是hasRole("ADMIN")
2. 在UserDetails里面不要有authorities这个属性(本人此处被坑)
3. 在WebSecurityConfigurerAdapter里面需要.antMaters(HttpMethod.OPTIONS,"/**").permitAll(),当然此处取决于你的请求模型,但是如果使用fetch应该是需要的
这篇文章讲得挺好的 https://www.jianshu.com/p/08cc28921fd0