70 lines
19 KiB
XML
70 lines
19 KiB
XML
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="1013px" preserveAspectRatio="none" style="width:649px;height:1013px;background:#FFFFFF;" version="1.1" viewBox="0 0 649 1013" width="649px" zoomAndPan="magnify"><defs/><g><rect fill="#DDDDDD" height="1001.4453" style="stroke:#181818;stroke-width:0.5;" width="271" x="372" y="6"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="54" x="480.5" y="18.0669">Neo Go</text><rect fill="none" height="469.9922" style="stroke:#000000;stroke-width:1.5;" width="510" x="10" y="102.5625"/><rect fill="#FFC0CB" height="75.3984" style="stroke:#000000;stroke-width:1.5;" width="356" x="20" y="197.9609"/><rect fill="#FFC0CB" height="46.2656" style="stroke:#000000;stroke-width:1.5;" width="193" x="20" y="358.625"/><rect fill="#FFC0CB" height="46.2656" style="stroke:#000000;stroke-width:1.5;" width="193" x="20" y="519.2891"/><rect fill="#FFC0CB" height="46.2656" style="stroke:#000000;stroke-width:1.5;" width="193" x="20" y="686.9531"/><rect fill="#FFC0CB" height="75.3984" style="stroke:#000000;stroke-width:1.5;" width="356" x="20" y="818.4844"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="53" x2="53" y1="56.4297" y2="969.1484"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="172" x2="172" y1="56.4297" y2="969.1484"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="301" x2="301" y1="56.4297" y2="969.1484"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="443" x2="443" y1="56.4297" y2="969.1484"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="579" x2="579" y1="56.4297" y2="969.1484"/><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="46" x="30" y="25.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32" x="37" y="45.1279">User</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="46" x="30" y="968.1484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32" x="37" y="988.1436">User</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="141" y="25.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="148" y="45.1279">S3-GW</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="141" y="968.1484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="148" y="988.1436">S3-GW</text><rect fill="#E2E2F0" height="30.2969" style="stroke:#181818;stroke-width:0.5;" width="126" x="240" y="21.1328"/><rect fill="#E2E2F0" height="30.2969" style="stroke:#181818;stroke-width:0.5;" width="126" x="236" y="25.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112" x="243" y="45.1279">FrostFS Storage</text><rect fill="#E2E2F0" height="30.2969" style="stroke:#181818;stroke-width:0.5;" width="126" x="240" y="968.1484"/><rect fill="#E2E2F0" height="30.2969" style="stroke:#181818;stroke-width:0.5;" width="126" x="236" y="972.1484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112" x="243" y="992.1436">FrostFS Storage</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="134" x="376" y="25.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="383" y="45.1279">frostfsid contract</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="134" x="376" y="968.1484"/><text fill="#000000" font-family="sans-serif"
|
||
|
@startuml
|
||
|
|
||
|
participant User
|
||
|
participant "S3-GW"
|
||
|
collections "FrostFS Storage"
|
||
|
|
||
|
User -> "S3-GW": Request
|
||
|
|
||
|
group signed request
|
||
|
|
||
|
"S3-GW" -> "FrostFS Storage": Find Access Box
|
||
|
"FrostFS Storage" -> "FrostFS Storage": Check request
|
||
|
|
||
|
alt #pink Check failure
|
||
|
"FrostFS Storage" - ->> "S3-GW": Access Denied
|
||
|
"S3-GW" - ->> User: Access Denied
|
||
|
end
|
||
|
|
||
|
"FrostFS Storage" - ->> "S3-GW": Access Box
|
||
|
"S3-GW" -> "S3-GW": Check sign
|
||
|
|
||
|
alt #pink Check failure
|
||
|
"S3-GW" - ->> User: Access Denied
|
||
|
end
|
||
|
|
||
|
"S3-GW" -> "frostfsid contract": Find user
|
||
|
"frostfsid contract" - ->> "S3-GW": User info
|
||
|
"S3-GW" -> "S3-GW": Check user info
|
||
|
|
||
|
alt #pink Check failure
|
||
|
"S3-GW" - ->> User: Access Denied
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
"S3-GW" -> "policy contract": Get policies
|
||
|
"policy contract" - ->> "S3-GW": Policies
|
||
|
"S3-GW" -> "S3-GW": Check policy
|
||
|
|
||
|
alt #pink Check failure
|
||
|
"S3-GW" - ->> User: Access Denied
|
||
|
end
|
||
|
|
||
|
"S3-GW" -> "FrostFS Storage": User Request
|
||
|
"FrostFS Storage" -> "FrostFS Storage": Check request
|
||
|
|
||
|
alt #pink Check failure
|
||
|
"FrostFS Storage" - ->> "S3-GW": Access Denied
|
||
|
"S3-GW" - ->> User: Access Denied
|
||
|
end
|
||
|
|
||
|
"FrostFS Storage" - ->> "S3-GW": Response
|
||
|
"S3-GW" - ->> User: Response
|
||
|
|
||
|
box "Neo Go"
|
||
|
participant "frostfsid contract"
|
||
|
participant "policy contract"
|
||
|
end box
|
||
|
|
||
|
@enduml
|
||
|
|
||
|
PlantUML version 1.2022.13(Sat Nov 19 16:22:17 MSK 2022)
|
||
|
(GPL source distribution)
|
||
|
Java Runtime: OpenJDK Runtime Environment
|
||
|
JVM: OpenJDK 64-Bit Server VM
|
||
|
Default Encoding: UTF-8
|
||
|
Language: en
|
||
|
Country: US
|
||
|
--></g></svg>
|