diff --git a/hsweb-authorization/hsweb-authorization-basic/README.md b/hsweb-authorization/hsweb-authorization-basic/README.md index 00183e893..1a7b8b986 100644 --- a/hsweb-authorization/hsweb-authorization-basic/README.md +++ b/hsweb-authorization/hsweb-authorization-basic/README.md @@ -4,7 +4,20 @@ 2. 实现数据权限控制 3. 可动态进行权限配置设置 -默认仅提供了aop方式的权限控制,控制逻辑如下: + +## 授权 +使用`hsweb-authorization-api`提供的监听器,类`UserOnSignIn`监听用户授权事件`AuthorizationSuccessEvent` +当用户完成授权(授权方式可自行实现或者使用框架默认的授权方式,主要触发该事件即可).授权通过后会触发该事件.流程如下 +1. 完成授权,触发`AuthorizationSuccessEvent` +2. `UserOnSignIn` 收到`AuthorizationSuccessEvent`事件,获取参数`token_type`(默认为`sessionId`),以及授权信息 +3. 根据`token_type` 生成token. +4. 将token和授权信息中的userId注册到`UserTokenManager` +5. 将token返回给授权接口 + +![授权](./img/autz-flow.png "授权") + + +## 权限控制 1. `AopAuthorizingController` aop拦截所有controller方法(注解了:`Controller`或者`RestController`的类的方法) 2. 在客户端发起请求的时候,将拦截到的方法信息(`MethodInterceptorContext`)传给权限定义解析器(`AopMethodAuthorizeDefinitionParser`) 进行解析 @@ -14,15 +27,9 @@ 5. 默认的权限控制实现`DefaultAuthorizingHandler`,将分别进行RBAC,数据权限,表达式方式的权限控制. 6. 如果授权未通过,则抛出`AccessDenyException`异常 -## 授权 -使用`hsweb-authorization-api`提供的监听器,类`UserOnSignIn`监听用户授权事件`AuthorizationSuccessEvent` -当用户完成授权(授权方式可自行实现或者使用框架默认的授权方式,主要触发该事件即可).授权通过后会触发该事件.流程如下 +![权限控制](./img/autz-handle-flow.png "权限控制") + -1. 完成授权,触发`AuthorizationSuccessEvent` -2. `UserOnSignIn` 收到`AuthorizationSuccessEvent`事件,获取参数`token_type`(默认为`sessionId`),以及授权信息 -3. 根据`token_type` 生成token. -4. 将token和授权信息中的userId注册到`UserTokenManager` -5. 将token返回给授权接口 ## 注销 与授权同理,类`UserOnSignOut`监听`AuthorizationExitEvent` ,当触发事件后,调用`UserTokenManager`移除当前登录的token信息 diff --git a/hsweb-authorization/hsweb-authorization-basic/img/autz-flow.png b/hsweb-authorization/hsweb-authorization-basic/img/autz-flow.png new file mode 100644 index 000000000..ec4137b55 Binary files /dev/null and b/hsweb-authorization/hsweb-authorization-basic/img/autz-flow.png differ diff --git a/hsweb-authorization/hsweb-authorization-basic/img/autz-handle-flow.png b/hsweb-authorization/hsweb-authorization-basic/img/autz-handle-flow.png new file mode 100644 index 000000000..b2a3ba162 Binary files /dev/null and b/hsweb-authorization/hsweb-authorization-basic/img/autz-handle-flow.png differ