1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
@startuml
package model <<Frame>> {
class Subscription {
<<create>> Subscription(String url, String title)
int getID()
String getURL()
long getLastActionTimestamp()
String getTitle()
}
class SubscriptionAction {
<<create>> SubscriptionAction(int userID, int subscriptionID)
int getID()
int getUserID()
int getSubscriptionID()
long getTimestamp()
boolean getAdded()
}
class Episode {
<<create>> Episode(int subscriptionID, int id, String url, String title, String thumbnailURL, int total)
int getSubscriptionID()
int getID()
int getGUID()
String getURL()
String getTitle()
int getTotal()
}
enum Action {
Download
Play
Delete
New
Flattr
String getJsonProperty()
}
class EpisodeAction {
<<create>> EpisodeAction(Action action, LocalDateTime timestamp, int started, int position)
int getEpisodeID()
Action getAction()
long getTimestamp()
int getStarted()
int getPosition()
void setEpisodeID()
EpisodeActionPost getEpisodeActionPost(String podcastURL, String episodeURL)
}
interface UserDetails {
String getUsername()
String getPassword()
Collection<Authority> getAuthorities()
boolean isAccountExpired()
boolean isAccountLocked()
boolean isCredentialsNonExpired()
boolean isEnabled()
}
note left
Aus org.springframework.security.core.userdetails.
Wird für die Schnittstelle UserDetailsManager benötigt.
Stellt wichtige Informationen eines Users bereit.
Diese werden nur indirekt von Spring Security
benutzt, indem sie vorher in Authentication Objekten
gekapselt werden.
end note
class User {
--
<<create>> User(String username, String password)
int getID()
String getSessionToken()
boolean getEmailIsValidated()
.. interface methods ..
String getUsername()
String getPassword()
Collection<Authority> getAuthorities()
boolean isAccountExpired()
boolean isAccountLocked()
boolean isCredentialsNonExpired()
boolean isEnabled()
}
interface GrantedAuthority {
String getAuthority()
}
note right
Aus org.springframework.security.core.
Wird für die Schnittstelle UserDetails benötigt.
Repräsentiert eine Autorisierung, die einem
Authentication Objekt gewährt wird.
end note
class Authority {
<<create>> Authority()
String getAuthority()
}
}
Subscription <. SubscriptionAction: ID
Action <-- EpisodeAction
EpisodeAction .> Episode: ID
UserDetails <|.. User: <<realize>>
User -> Authority
GrantedAuthority <|.. Authority: <<realize>>
@enduml
|