monorepo-microservice-rbac/construct.drawio
2023-08-27 14:37:59 +08:00

194 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>