SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan

Security是比较老的技术,我查询很多博客,说的千篇一律,没啥办法,百度官网:

https://docs.spring.io/spring-security/site/docs/4.2.4.BUILD-SNAPSHOT/reference/htmlsingle/

这个链接可以帮助你更好的认识Security

依赖:


SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第1张图片

先说一下基础吧Security的登陆授权执行顺序:

SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第2张图片

第1部分和第2部分是url拦截,其实比较简单,我下图都做出相应指针,调用的两个方法是用来注入方法并重写和shiro有点类似:

SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第3张图片
url拦截


3是捕获Security异常做出相应处理,4部分是内部调用方法super.beforeInvocation()进行用户认证查询,5 是api接口

一个用户发送请求—————先走1-2部分,Security知道该请求需不需要认证——————调用第4部分super.beforeInvocation()方法发现该请求没有认证,抛出一个异常——————第3部分捕获异常,并做出相应的措施(重定向登录页面)————用户登录之后继续走到第4部分效验成功并跳转到成功页面

从上面我们知道认证流程,现在我们要走下一步,查询数据库塞到Security框架进行处理权限

SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第4张图片
数据库查询用户以及角色

这里唯一要注意的就是User这个类重写UserDetails的前三个方法,这个方法是重写UserDetails权限的方法并实现:

SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第5张图片
角色重写UserDetails

Security太简单到这里还要注意的就是前后端分离,访问成功的请求:

SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第6张图片
前后端分离

可以用测试过,感觉太简单:            @PreAuthorize("hasRole('ROLE_ADMIN')")

SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第7张图片
权限标签   @PreAuthorize("hasRole('ROLE_ADMIN')")

用户退出登录:

SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan_第8张图片

到这里权限分离就完成了,其实和shiro基本一样,没啥太大区别。

留下Demo地址:

http://pan.baidu.com/s/1c2MwLiw

####指导qq:179061434

你可能感兴趣的:(SpringBoot+Security+mybatis 前后端分离 螃蟹和骆驼先生Yvan)