From cc50434f02a4bab65646921846b65a5313e97347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Wed, 30 Mar 2022 13:22:51 +0200 Subject: [PATCH] docu: Zur Verdeutlichung des Vorgehen UML schreiben --- resources/uml/Ablauf/Phase-I.puml | 21 +++++++++++ resources/uml/Ablauf/Phase-II.puml | 29 +++++++++++++++ .../uml/Ablauf/Phase-III-Token-auswerten.puml | 36 +++++++++++++++++++ resources/uml/Ablauf/Phase-III.puml | 28 +++++++++++++++ resources/uml/Komponenten.puml | 30 ++++++++++++++++ 5 files changed, 144 insertions(+) create mode 100644 resources/uml/Ablauf/Phase-I.puml create mode 100644 resources/uml/Ablauf/Phase-II.puml create mode 100644 resources/uml/Ablauf/Phase-III-Token-auswerten.puml create mode 100644 resources/uml/Ablauf/Phase-III.puml create mode 100644 resources/uml/Komponenten.puml diff --git a/resources/uml/Ablauf/Phase-I.puml b/resources/uml/Ablauf/Phase-I.puml new file mode 100644 index 0000000..a3652f0 --- /dev/null +++ b/resources/uml/Ablauf/Phase-I.puml @@ -0,0 +1,21 @@ +@startuml +'https://plantuml.com/sequence-diagram + +actor Veranstalter +actor IT +boundary "Auth-Website" as AuthUI +control "Auth-API" as AuthAPI +database "Auth-Datenbank" as AuthDB + +Veranstalter -> IT : anfrage Account +activate AuthUI +IT -> AuthUI : Login +IT -> AuthUI : Neuer //Veranstalter// +Veranstalter -> AuthUI : Angabe Benutzername +AuthUI -> AuthAPI : Erstellung //Veranstalter// +AuthAPI -> AuthAPI : Erstellung //OPT-Token// +AuthAPI -> AuthDB : Speicherung der Daten des //Veranstalter// +AuthUI <-- AuthAPI : OTP-Token für die //OTP-App// +Veranstalter <--AuthUI : OTP-Token für die //OTP-App// + +@enduml \ No newline at end of file diff --git a/resources/uml/Ablauf/Phase-II.puml b/resources/uml/Ablauf/Phase-II.puml new file mode 100644 index 0000000..a63729d --- /dev/null +++ b/resources/uml/Ablauf/Phase-II.puml @@ -0,0 +1,29 @@ +@startuml +'https://plantuml.com/sequence-diagram + +actor Veranstalter +actor Client +boundary "Auth-Website" as AuthUI +control "Auth-API" as AuthAPI +control "OTP-API" as OTP +database "Auth-Datenbank" as AuthDB + +Veranstalter -> Client : Anfrage mitarbeit? +Client -> AuthUI : Aufruf Webseite Login +Veranstalter -> AuthUI : Eintragung //Benutzername//-Client +Veranstalter -> AuthUI : Eintragung //Benutzername//-Veranstalter +Veranstalter -> AuthUI : Eintragung Rollen-Client +Veranstalter -> AuthUI : Eintragung gültiges //OPT// +AuthUI -> AuthAPI : Anfrage nach //Web-Token// +AuthAPI -> AuthDB : Anfrage nach Veranstalter-Daten +AuthAPI -> OTP : Prüfung OTP +return +alt OTP ist ok + AuthAPI -> AuthDB : Speichere Daten + AuthAPI -> AuthAPI : Erstelle //Web-Token// + AuthUI <-- AuthAPI : //Web-Token// + Client <-- AuthUI : //Web-Token// +else OTP ist nicht ok + AuthUI <-- AuthAPI : HTTP-Error 401 +end +@enduml \ No newline at end of file diff --git a/resources/uml/Ablauf/Phase-III-Token-auswerten.puml b/resources/uml/Ablauf/Phase-III-Token-auswerten.puml new file mode 100644 index 0000000..e07d58e --- /dev/null +++ b/resources/uml/Ablauf/Phase-III-Token-auswerten.puml @@ -0,0 +1,36 @@ +@startuml +'https://plantuml.com/activity-diagram-beta + +start +:Client möchte App-Server abfragen; +:Client sendet Token> +partition App-Server { + if (Token nicht in der Datenbank) then (Ja) + :Sende Token an Auth-Server> + partition Auth-Server { + :Überprüfe Token| + :Sende Ergebnis< + } + if (Token ist gültig) then (Ja) + :Speichere Token und Verfallsdatum + in Datenbank/ + else + :Sende HTTP-Code 401< + stop + endif + else + if (Token ist verfalle) then (Ja) + :Sende HTTP-Code 401< + stop + endif + endif + :Rolle aus Token überprüfen] + if (Rolle erlaubt Abfrage) then (Ja) + :Abfrage ausführen| + else + :Sende HTTP-Code 403< + endif +} +stop + +@enduml diff --git a/resources/uml/Ablauf/Phase-III.puml b/resources/uml/Ablauf/Phase-III.puml new file mode 100644 index 0000000..295bd67 --- /dev/null +++ b/resources/uml/Ablauf/Phase-III.puml @@ -0,0 +1,28 @@ +@startuml +'https://plantuml.com/sequence-diagram + +actor Client +boundary "App-Website" as AppUI +control "App-Rest-API" as AppAPI + +Client -> AppUI : Anfrage an Webseite +AppUI -> AppAPI : Anfrage an Webseite +Client --> AppUI : //Web-Token// +AppUI --> AppAPI : //Web-Token// +AppAPI -> AppAPI : //Web-Token// überprüfen +alt //Web-Token// ist gültig + AppAPI -> AppAPI : Client-Rolle überprüfen + alt Rolle ist gültig + AppAPI -> AppAPI : Anfrage auswerten + AppUI <-- AppAPI : + Client <-- AppUI : + else + AppUI <- AppAPI : HTTP-Code 403 + Client <- AppUI : HTTP-Code 403 + end +else + AppUI <- AppAPI : HTTP-Code 401 + Client <- AppUI : HTTP-Code 401 +end + +@enduml diff --git a/resources/uml/Komponenten.puml b/resources/uml/Komponenten.puml new file mode 100644 index 0000000..0866f50 --- /dev/null +++ b/resources/uml/Komponenten.puml @@ -0,0 +1,30 @@ +@startuml +'https://plantuml.com/component-diagram + + +node Webseite { + component UI + folder Cookies + UI <--> Cookies +} +node "App-API" { + component API + database "DB" as AppDB { + folder "Clients" as BekannteClients + } + API <--> AppDB +} +node "Auth-API" { + component "API" as AuthAPI + database "DB" as AuthDB{ + folder "Administratoren" + folder "Veranstalter" + folder "Clients" + } + AuthAPI <--> AuthDB +} + +UI <-> API +API <-> AuthAPI + +@enduml \ No newline at end of file