monorepo-microservice-rbac/construct.drawio

194 lines
14 KiB
Plaintext
Raw Normal View History

2023-08-27 14:37:59 +08:00
<mxfile host="65bd71144e">
<diagram id="I9_WK6TZ7pcl2GGpHfjg" name="第 1 页">
<mxGraphModel dx="819" dy="750" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="5" value="" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="2" target="14" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="386" y="272" as="targetPoint"/>
<Array as="points">
<mxPoint x="180" y="225"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="6" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="2" target="18" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="390" y="405" as="targetPoint"/>
<Array as="points">
<mxPoint x="180" y="405"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="2" value="cert&lt;br&gt;认证中心" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="120" y="310" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="10" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1.018;exitY=0.009;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="20" target="11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="580" y="390" as="targetPoint"/>
<mxPoint x="510.0000000000001" y="390" as="sourcePoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="11" value="redis&lt;br&gt;存储token" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" parent="1" vertex="1">
<mxGeometry x="550" y="380" width="60" height="80" as="geometry"/>
</mxCell>
<mxCell id="13" value="authorize(rbac)" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="180" width="140" height="90" as="geometry"/>
</mxCell>
<mxCell id="14" value="rbac 角色、权限初始化" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="13" vertex="1">
<mxGeometry y="30" width="140" height="30" as="geometry"/>
</mxCell>
<mxCell id="15" value="cert-web初始账号生成" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="13" vertex="1">
<mxGeometry y="60" width="140" height="30" as="geometry"/>
</mxCell>
<mxCell id="56" style="edgeStyle=none;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="17" target="27" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="61" value="token cipher" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="56" vertex="1" connectable="0">
<mxGeometry x="0.4032" relative="1" as="geometry">
<mxPoint y="-1" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="17" value="authenticate" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="360" width="140" height="90" as="geometry"/>
</mxCell>
<mxCell id="18" value="token签发、校验" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="17" vertex="1">
<mxGeometry y="30" width="140" height="30" as="geometry"/>
</mxCell>
<mxCell id="20" value="redisService" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="17" vertex="1">
<mxGeometry y="60" width="140" height="30" as="geometry"/>
</mxCell>
<mxCell id="24" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="23" target="25" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="390" y="655" as="targetPoint"/>
<Array as="points">
<mxPoint x="375" y="660"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="26" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="23" target="27" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="400" y="810" as="targetPoint"/>
<mxPoint x="180" y="600" as="sourcePoint"/>
<Array as="points">
<mxPoint x="180" y="600"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="23" value="业务系统&lt;br&gt;aorta" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="120" y="630" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="42" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="25" target="43" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="590" y="710" as="targetPoint"/>
<mxPoint x="460" y="850" as="sourcePoint"/>
<Array as="points">
<mxPoint x="375" y="870"/>
<mxPoint x="460" y="870"/>
<mxPoint x="460" y="710"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="25" value="guard校验" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="310" y="730" width="130" height="100" as="geometry"/>
</mxCell>
<mxCell id="39" style="edgeStyle=none;html=1;" parent="1" source="27" target="40" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="620" y="570" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="41" value="response塞cookies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="39" vertex="1" connectable="0">
<mxGeometry x="-0.2952" y="1" relative="1" as="geometry">
<mxPoint x="21" y="-19" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="59" style="edgeStyle=none;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;" parent="1" source="27" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="358" y="450" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="60" value="token过期时间redisKey的规则" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="59" vertex="1" connectable="0">
<mxGeometry x="0.3331" y="4" relative="1" as="geometry">
<mxPoint x="-44" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="27" value="网关/登录" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="325" y="570" width="130" height="60" as="geometry"/>
</mxCell>
<mxCell id="36" style="edgeStyle=none;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="35" target="23" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="37" value="前端请求apiheaders带cookies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="36" vertex="1" connectable="0">
<mxGeometry x="-0.2" y="2" relative="1" as="geometry">
<mxPoint y="1" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="35" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
<mxGeometry x="165" y="780" width="30" height="60" as="geometry"/>
</mxCell>
<mxCell id="40" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
<mxGeometry x="565" y="570" width="30" height="60" as="geometry"/>
</mxCell>
<mxCell id="44" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="43" target="45" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="580" y="830" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="46" value="token解出用户role" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="44" vertex="1" connectable="0">
<mxGeometry x="-0.4963" y="-1" relative="1" as="geometry">
<mxPoint x="1" y="17" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="47" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="17" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="580" y="760" as="sourcePoint"/>
<Array as="points">
<mxPoint x="690" y="760"/>
<mxPoint x="690" y="520"/>
<mxPoint x="690" y="300"/>
<mxPoint x="390" y="300"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="43" value="token校验&lt;br&gt;1.是否存在redis" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="520" y="680" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="48" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="13" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="580" y="920" as="sourcePoint"/>
<Array as="points">
<mxPoint x="760" y="920"/>
<mxPoint x="760" y="140"/>
<mxPoint x="390" y="140"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="49" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="45" target="50" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="580" y="980" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="45" value="访问的资源&lt;br&gt;进行权限校验" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="520" y="830" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="51" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="50" target="52" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="580" y="1080" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="53" value="return true" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="51" vertex="1" connectable="0">
<mxGeometry x="-0.2" y="2" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="50" value="guard自身的校验规则" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="520" y="950" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="52" value="controller层执行" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="520" y="1070" width="120" height="60" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>