MateCloud微服务前后端分离项目,集成Spring Security关键要点
为什么要用Spring Security?
大家可能会看到单体应用的框架的开源项目,大量采用的Apache Shiro的安全框架,集成起来简单又方便。反观之Spring Security设计复杂,且源码看起来又难懂。在Spring Boot和Spring Cloud中集成的原因如下:
- Shiro对Oauth2的集成度不够,如果放到前后端分离的项目,需要写大量的业务代码;
- spring-boot-starter-security,Spring Boot官方提供了Spring Security的工具类,容易快速集成;
- Spring Security业务实现完善,同时也集成了一些安全相关的组件,安全性更强;
MateCloud中安全认证集成了哪些功能?
- 支持多种登录认证模式:密码登录、验证码登录、社交登录、简化模式、授权码模式、客户端模式、刷新Token模式等
- 独创的自有的认证体系,不依赖于security框架进行权限校验;且支持网关和模块集成两种验证模式;
- 集成了justauth,实现快速支持:微信、QQ、支付宝等多家的社交登录模式;
- 在网关认证模式中,集成了用户同一个客户端只允许登录一个用户的功能;
安全认证相关模块
先引入统一依赖
参考文档:http://www.mate.vip/archives/278
security集成,实现了安全认证相关的功能
<dependency>
<groupId>vip.mate</groupId>
<artifactId>mate-starter-security</artifactId>
</dependency>
此模块目前专为mate-uaa使用,用于登录并获取token。
auth集成,实现了是否登录的判断和接口细颗粒度的鉴权
<dependency>
<groupId>vip.mate</groupId>
<artifactId>mate-starter-auth</artifactId>
</dependency>
此模块用于各微服务模块,主要对token进行验证,并支持权限校验。
使用方法
- 在方法上面增加注解
@PreAuth
这个注解支持对token的合法性和有效期验证
- 扩展支持
@PreAuth(hasPerm = "client:add")
扩展后除验证token的合法性和有效期外,还验证该用户是否有client:add的接口使用权限
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。