Java安全框架——Apache Shiro(三十一)

111 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情

【3】认证与鉴权服务化

第六章中,我们实现了realm的缓存机制,这里我们会把UserBridgeService使用dubbo服务化

其目的使得实际项目中的认证与鉴权走dubbo,减少服务器压力

【4】动态过滤器链

在第十章中,我们加载过滤器链的方式

#静态资源不过滤  
/static/**=anon  
#登录链接不过滤  
/login/**=anon  
#访问/resource/**需要有admin的角色  
#/resource/**=role-or[MangerRole,SuperAdmin]  
#/role/** =jwt-roles[SuperAdmin]  
/resource/** =jwt-perms[role:listInitialize]  
#其他链接是需要登录的  
/**=kicked-out,jwt-authc  

在统一鉴权系统中,我们不可能每次发布新的过滤器链,就去重启服务器,我们更希望可以动态管理过滤器链

【5】权限客户端

shiro-client作为jar的依赖,满足以下需求:

1、非侵入式:使用者只需要对jar依赖和做少量的配置,就可以达到统一鉴权的目标

2、可扩展性:用户除使用提供的过滤器外,可以轻松安自己的业务去定义过滤器

3、集中式管理:依赖jar之后,shiro-mgt后台可以同时管控多个平台的权限的认证、鉴权、及动态配置过滤器链

【6】网关平台

springboot-shiro-gateway:

1、依赖shiro-client项目作为权限的被控制层

2、实现dubbo传输协议到HTTP传输协议的转化,当然这里提供的为通用的转换方式。

3、可复制、复制后只需要在shiro-mgt后台中做简单的配置,就可以实现一个新网关的接入

2、架构设计

【1】系统网络通讯

1、网关服务集群性,同时实现会话的统一管理

2、鉴权服务集群化,提供统一鉴权服务

3、管理后台集群化

【2】模块依赖关系

【1.1】springboot-shiro-parent

springboot-shiro-parent:项目统一jar和plugIn的POM定义

【1.2】springboot-shiro-gateway-handler

​        1、dubbo业务服务转换http通讯

​        2、认证与鉴权服务化消费者

​        3、生成业务服务化消费者