feat: 가상화 문서들 추가
This commit is contained in:
+1
-1
@@ -20,4 +20,4 @@
|
||||
- **Browser → Resource Server:** Bearer header. Evidence: L158–L160.
|
||||
- **Browser → Spring mediator:** AP2_SESSION. Evidence: L158–L160.
|
||||
- **Spring mediator → Browser:** access_token · type · expiry. Evidence: L158–L158.
|
||||
- **Spring mediator → Authorized-client store:** 보관 · 현재 access 조회. Evidence: L156–L160.
|
||||
- **Spring mediator → Authorized-client store:** 보관 · 조회. Evidence: L156–L160.
|
||||
|
||||
@@ -14,6 +14,6 @@ n3: "Resource Server" {
|
||||
shape: rectangle
|
||||
}
|
||||
n0 -> n1: "AP2_SESSION"
|
||||
n1 -> n2: "보관 · 현재 access 조회"
|
||||
n1 -> n2: "보관 · 조회"
|
||||
n1 -> n0: "access_token · type · expiry"
|
||||
n0 -> n3: "Bearer header"
|
||||
|
||||
@@ -7,7 +7,7 @@ digraph techviz {
|
||||
n2 [label="Authorized-client store", shape=cylinder, style="rounded,filled"];
|
||||
n3 [label="Resource Server", shape=box, style="rounded,filled"];
|
||||
n0 -> n1 [label="AP2_SESSION", style=solid];
|
||||
n1 -> n2 [label="보관 · 현재 access 조회", style=solid];
|
||||
n1 -> n2 [label="보관 · 조회", style=solid];
|
||||
n1 -> n0 [label="access_token · type · expiry", style=solid];
|
||||
n0 -> n3 [label="Bearer header", style=solid];
|
||||
}
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
<mxCell id="n_mediator" value="Spring mediator<br/>oauth2Login<br/>confidential client" tooltip="Confidential OAuth client로 code를 교환하고 browser에 access-only 응답을 제공한다. | Evidence: L156-L158" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;strokeColor=#2563eb;strokeWidth=2;" vertex="1" parent="1">
|
||||
<mxGeometry x="400.0" y="196.0" width="167.0" height="88.0" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="n_authorized-client-store" value="Authorized-client store<br/>access token<br/>refresh token" tooltip="Access와 refresh token을 server-side state로 보관한다. | Evidence: L156-L160" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;shape=cylinder3;boundedLbl=1;backgroundOutline=1;fillColor=#eef6fb;" vertex="1" parent="1">
|
||||
<mxCell id="n_authorized-client-store" value="Authorized-client store<br/>access token<br/>refresh token" tooltip="Access와 refresh token을 server-side state로 보관한다. | Evidence: L156-L160" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
|
||||
<mxGeometry x="727.0" y="118.0" width="153.0" height="108.0" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="e_browser-to-api" value="Bearer header" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_browser" target="n_api-resource-server">
|
||||
@@ -32,7 +32,7 @@
|
||||
<mxPoint x="297.2" y="376.0" as="offset"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="e_mediator-to-store" value="보관 · 현재 access 조회" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_mediator" target="n_authorized-client-store">
|
||||
<mxCell id="e_mediator-to-store" value="보관 · 조회" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_mediator" target="n_authorized-client-store">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="671.0" y="206.0" as="offset"/>
|
||||
</mxGeometry>
|
||||
|
||||
+4
-4
@@ -363,9 +363,9 @@
|
||||
{
|
||||
"id": "edge-label-mediator-to-store",
|
||||
"type": "text",
|
||||
"x": 603.0,
|
||||
"x": 626.0,
|
||||
"y": 194.0,
|
||||
"width": 136,
|
||||
"width": 90,
|
||||
"height": 24,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
@@ -391,11 +391,11 @@
|
||||
"locked": false,
|
||||
"fontSize": 13,
|
||||
"fontFamily": 5,
|
||||
"text": "보관 · 현재 access 조회",
|
||||
"text": "보관 · 조회",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": null,
|
||||
"originalText": "보관 · 현재 access 조회",
|
||||
"originalText": "보관 · 조회",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"harness_version": "0.2.0",
|
||||
"spec_id": "ap2-mediator-architecture",
|
||||
"spec_version": "1.1",
|
||||
"spec_sha256": "00183e9d9c71bd0743bb35922fe89898c7cce05f9b13492d1b38fe98be41ba1d",
|
||||
"spec_sha256": "57354aea377e1c3f11e19fd03ccffba9df44f37b78a5fa69f8b2521705f8f6d7",
|
||||
"source_context": {
|
||||
"document": "document.md",
|
||||
"document_sha256": "df4d1a604c74e756672b5b40510abfedb8c67b39af280a5f51985ea9972f5371",
|
||||
|
||||
@@ -6,7 +6,7 @@ flowchart LR
|
||||
n2[("Authorized-client store")]
|
||||
n3["Resource Server"]
|
||||
n0 -->|"AP2_SESSION"| n1
|
||||
n1 -->|"보관 · 현재 access 조회"| n2
|
||||
n1 -->|"보관 · 조회"| n2
|
||||
n1 -->|"access_token · type · expiry"| n0
|
||||
n0 -->|"Bearer header"| n3
|
||||
classDef external stroke-dasharray: 6 4
|
||||
|
||||
@@ -60,10 +60,10 @@
|
||||
<rect class="edge-label-bg" x="194.4" y="362.0" width="205.6" height="22" rx="3" />
|
||||
<text class="edge-label" x="297.2" y="377.0">access_token · type · expiry</text>
|
||||
<polyline class="edge kind-data style-solid emphasis-normal" points="567.0,240.0 647.0,240.0 647.0,172.0 727.0,172.0" data-evidence="156-160" />
|
||||
<rect class="edge-label-bg" x="605.0" y="192.0" width="131.9" height="22" rx="3" />
|
||||
<text class="edge-label" x="671.0" y="207.0">보관 · 현재 access 조회</text>
|
||||
<rect class="edge-label-bg" x="638.5" y="192.0" width="64.9" height="22" rx="3" />
|
||||
<text class="edge-label" x="671.0" y="207.0">보관 · 조회</text>
|
||||
<g id="node-browser">
|
||||
<g class="actor-symbol emphasis-normal" data-evidence="156-160"><circle cx="155.0" cy="148.0" r="11.0" /><line x1="155.0" y1="164.0" x2="155.0" y2="187.0" /><line x1="137.0" y1="174.0" x2="173.0" y2="174.0" /><line x1="155.0" y1="187.0" x2="140.0" y2="204.0" /><line x1="155.0" y1="187.0" x2="170.0" y2="204.0" /></g>
|
||||
<g class="actor-symbol emphasis-normal" data-evidence="156-160"><circle cx="155.0" cy="148.0" r="11.0" /><line x1="155.0" y1="164.0" x2="155.0" y2="177.0" /><line x1="137.0" y1="174.0" x2="173.0" y2="174.0" /><line x1="155.0" y1="177.0" x2="140.0" y2="194.0" /><line x1="155.0" y1="177.0" x2="170.0" y2="194.0" /></g>
|
||||
<text class="node-label" x="155.0" y="209.0">Browser</text>
|
||||
</g>
|
||||
<g id="node-api-resource-server">
|
||||
@@ -78,7 +78,7 @@
|
||||
<text class="node-detail" x="416.0" y="277.0">confidential client</text>
|
||||
</g>
|
||||
<g id="node-authorized-client-store">
|
||||
<rect class="node-shape kind-database emphasis-normal role-store" data-evidence="156-160" x="727.0" y="131.0" width="153.0" height="82.0" /><ellipse class="node-shape kind-database emphasis-normal role-store" cx="803.5" cy="131.0" rx="76.5" ry="13.0" /><path class="storage-bottom" d="M 727.0 213.0 A 76.5 13.0 0 0 0 880.0 213.0" />
|
||||
<rect class="node-shape kind-database emphasis-normal role-store" data-evidence="156-160" x="727.0" y="118.0" width="153.0" height="108.0" rx="7" />
|
||||
<text class="node-label" x="803.5" y="145.0">Authorized-client</text>
|
||||
<text class="node-label" x="803.5" y="163.0">store</text>
|
||||
<line class="node-detail-divider" x1="741.0" y1="184.0" x2="866.0" y2="184.0" />
|
||||
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.3 KiB |
Reference in New Issue
Block a user