Security是比较老的技术,我查询很多博客,说的千篇一律,没啥办法,百度官网:
https://docs.spring.io/spring-security/site/docs/4.2.4.BUILD-SNAPSHOT/reference/htmlsingle/
这个链接可以帮助你更好的认识Security
依赖:
先说一下基础吧Security的登陆授权执行顺序:
第1部分和第2部分是url拦截,其实比较简单,我下图都做出相应指针,调用的两个方法是用来注入方法并重写和shiro有点类似:
url拦截3是捕获Security异常做出相应处理,4部分是内部调用方法super.beforeInvocation()进行用户认证查询,5 是api接口
一个用户发送请求—————先走1-2部分,Security知道该请求需不需要认证——————调用第4部分super.beforeInvocation()方法发现该请求没有认证,抛出一个异常——————第3部分捕获异常,并做出相应的措施(重定向登录页面)————用户登录之后继续走到第4部分效验成功并跳转到成功页面
从上面我们知道认证流程,现在我们要走下一步,查询数据库塞到Security框架进行处理权限
数据库查询用户以及角色这里唯一要注意的就是User这个类重写UserDetails的前三个方法,这个方法是重写UserDetails权限的方法并实现:
角色重写UserDetailsSecurity太简单到这里还要注意的就是前后端分离,访问成功的请求:
前后端分离可以用测试过,感觉太简单: @PreAuthorize("hasRole('ROLE_ADMIN')")
权限标签 @PreAuthorize("hasRole('ROLE_ADMIN')")用户退出登录:
到这里权限分离就完成了,其实和shiro基本一样,没啥太大区别。
留下Demo地址:
http://pan.baidu.com/s/1c2MwLiw
####指导qq:179061434
网友评论