Package at.letto.security
Class LettoToken
java.lang.Object
at.letto.security.LettoToken
Ein JWT-Token welcher in LeTTo verwendet wird als Objekt mit Methoden zur
Analyse des Tokens
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate io.jsonwebtoken.Claims
private final boolean
private io.jsonwebtoken.Jwt
static final String
Administrator der Schulestatic final String
Wird für Abos benutzt - MAYT fragen wozustatic final String
ein Externer Benutzer darf nur dann eine User-Category anlegen, wenn ROLE_CREATE_CATEGORY aktiv iststatic final String
Benutzer ist deaktiviertstatic final String
Externer Benutzerstatic final String
globaler Administratorstatic final String
mehrfacher Login zulässigstatic final String
zahlender Student für LeTTo-Privatestatic final String
Prefix für den Benutzernamen des Originalbenutzers wenn sich ein Lehrer/Admin als anderer User verkleidet hatstatic final String
Rolle für die Authentifizierung eines Server-Tokens, der an Lehrer/Admins anderer Schulen weitergegeben wirdstatic final String
Student der Schulestatic final String
Lehrer der Schulestatic final String
nur das aktuelle Schuljahr darf benutzt werdenstatic final String
MAYT fragenstatic final String
MAYT fragenprivate final String
private final String
-
Constructor Summary
ConstructorsConstructorDescriptionLettoToken
(String secret, Long expiration, String username, String vorname, String nachname, String activDirectoryname, String email, String sprache, Integer idUser, Integer idSchule, String school, String lettoUri, String serverRestkey, List<String> roles) LettoToken
(String token, String secret) LettoToken
(String secret, String issuer, String audience, Long expiration, String username, String vorname, String nachname, String activDirectoryname, String email, String sprache, Integer idUser, Integer idSchule, String school, String lettoUri, String serverRestkey, List<String> roles) LettoToken
(String secret, String issuer, String audience, Long expiration, String username, String vorname, String nachname, String activDirectoryname, String email, String sprache, Integer idUser, Integer idSchule, String school, String lettoUri, String serverRestkey, List<String> roles, HashMap<String, String> payload) -
Method Summary
Modifier and TypeMethodDescriptionprivate Date
calculateExpirationDate
(Date createdDate, Long expiration) private String
checkSecret
(String secret) private io.jsonwebtoken.Claims
private <T> T
getClaimFromToken
(Function<io.jsonwebtoken.Claims, T> claimsResolver) getEmail()
getId()
io.jsonwebtoken.Jwt
getJwt()
getPayload
(String key) getRoles()
String[]
long
boolean
Prüft ob der Token eine angegebenen Rolle hatboolean
isAdmin()
boolean
isAlias()
boolean
isExtern()
boolean
isGlobal()
boolean
boolean
boolean
boolean
boolean
boolean
isValid()
refreshToken
(String secret, long expiration) toString()
-
Field Details
-
ROLE_GLOBAL
globaler Administrator- See Also:
-
ROLE_EXTERN
Externer Benutzer- See Also:
-
ROLE_CHANGE_ABOS
Wird für Abos benutzt - MAYT fragen wozu- See Also:
-
ROLE_MULTIPLE_LOGIN
mehrfacher Login zulässig- See Also:
-
ROLE_PAYINGSTUDENT
zahlender Student für LeTTo-Private- See Also:
-
ROLE_STUDENT
Student der Schule- See Also:
-
ROLE_TEACHER
Lehrer der Schule- See Also:
-
ROLE_ADMIN
Administrator der Schule- See Also:
-
ROLE_DISABLED
Benutzer ist deaktiviert- See Also:
-
ROLE_USER_ABOS_CATEGORY
MAYT fragen- See Also:
-
ROLE_USER_ABOS_USER
MAYT fragen- See Also:
-
ROLE_USE_CURRENT_YEAR
nur das aktuelle Schuljahr darf benutzt werden- See Also:
-
ROLE_PREFIX_ORIGINUSER
Prefix für den Benutzernamen des Originalbenutzers wenn sich ein Lehrer/Admin als anderer User verkleidet hat- See Also:
-
ROLE_SERVER
Rolle für die Authentifizierung eines Server-Tokens, der an Lehrer/Admins anderer Schulen weitergegeben wird- See Also:
-
ROLE_CREATE_CATEGORY
ein Externer Benutzer darf nur dann eine User-Category anlegen, wenn ROLE_CREATE_CATEGORY aktiv ist- See Also:
-
token
-
secret
-
created
private final boolean created -
claims
private io.jsonwebtoken.Claims claims -
jwt
private io.jsonwebtoken.Jwt jwt
-
-
Constructor Details
-
LettoToken
-
LettoToken
-
LettoToken
-
LettoToken
public LettoToken(String secret, String issuer, String audience, Long expiration, String username, String vorname, String nachname, String activDirectoryname, String email, String sprache, Integer idUser, Integer idSchule, String school, String lettoUri, String serverRestkey, List<String> roles, HashMap<String, String> payload)
-
-
Method Details
-
checkSecret
-
refreshToken
- Parameters:
secret
- JWT-Secretexpiration
- Lebensdauer in ms- Returns:
- Liefert einen neuen Token mit neuer Gültigkeitsdauer und sonst gleichen Daten
-
toString
-
calculateExpirationDate
-
getValidMillis
public long getValidMillis()- Returns:
- gibt an wie lange der Token noch gültig ist
-
getUsername
- Returns:
- Liefert den Benutzernamen welcher im Token gespeichert wurde
-
getExpirationDate
- Returns:
- Liefert das Datum an dem der Token abläuft
-
getCreatedDate
- Returns:
- Liefert das Datum an dem der Token erzeugt wurde
-
getIdUser
- Returns:
- Liefert die id eines Users
-
getIdSchule
- Returns:
- Liefert die id der Schule
-
getId
- Returns:
- Liefert die id des Users
-
getVorname
- Returns:
- Liefert den Vornamen des Users
-
getNachname
- Returns:
- Liefert den Nachnamen des Users
-
getActiveDirectoryName
- Returns:
- Liefert den Activ-Directory-Namen des Users
-
getEmail
- Returns:
- Liefert die Email-Adresse des Users
-
getSprache
- Returns:
- Liefert die Spracheinstellung des Users
-
getSchool
- Returns:
- Liefert den Kurznamen der Schule welcher auch in der URI zur Identifikation verwendet wird
-
getLettoUri
- Returns:
- Liefert die URI der Schule
-
getServerRestkey
- Returns:
- Liefert den Restkey des Servers
-
getIssuer
- Returns:
- Liefert den Erzeuger des Tokens
-
getAudience
- Returns:
- Liefert den Zuständigkeitsbereich des Tokens
-
getRoles
- Returns:
- Liefert eine Liste aller Rollen des Benutzers
-
getPayload
- Returns:
- Liefert eine Hashmap des Payloads
-
getPayload
- Returns:
- Liefert eine Hashmap eines Wertes des Payloads
-
getRolesArray
- Returns:
- Liefert alle Rollen des Benutzers als Array von Strings
-
getClaimFromToken
-
getAllClaimsFromToken
private io.jsonwebtoken.Claims getAllClaimsFromToken() -
getJwt
public io.jsonwebtoken.Jwt getJwt()- Returns:
- Liefert eine Java-Web-Token-Darstellung des LeTTo-Tokens
-
isTokenNotExpired
public boolean isTokenNotExpired()- Returns:
- gibt an ob der Token noch gültig ist
-
isValid
public boolean isValid()- Returns:
- gibt an ob der Token gültige Inhalte hat, aber nicht ob er noch nicht abgelaufen ist ( siehe isTokenNotExpired )
-
validateToken
- Returns:
- true wenn der Token noch nicht abgelaufen ist
-
hasRole
Prüft ob der Token eine angegebenen Rolle hat- Parameters:
role
- Rolle die geprüft werden soll- Returns:
- true wenn der Token der Rolle entspricht
-
getOriginUser
- Returns:
- Wenn der Token ein Alias-Token ist, der Benutzername welcher sich ursrpünglich eingeloggt hat, andernfalls ein Leerstring.
-
isAdmin
public boolean isAdmin()- Returns:
- true wenn der Benutzer nicht disabled ist und die Admin-Rolle hat
-
isGlobal
public boolean isGlobal()- Returns:
- true wenn der Benutzer nicht disabled ist und die Global-Rolle hat
-
isTeacher
public boolean isTeacher()- Returns:
- true wenn der Benutzer nicht disabled ist und die Teacher-Rolle hat
-
isStudent
public boolean isStudent()- Returns:
- true wenn der Benutzer nicht disabled ist und die Student-Rolle hat
-
isPayingStudent
public boolean isPayingStudent()- Returns:
- true wenn der Benutzer nicht disabled ist und die Paying-Student-Rolle hat
-
isMultipleLogin
public boolean isMultipleLogin()- Returns:
- true wenn der Benutzer nicht disabled ist und die Multiple-Login-Rolle hat
-
isExtern
public boolean isExtern()- Returns:
- true wenn der Benutzer nicht disabled ist und die Extern-Rolle hat
-
isAlias
public boolean isAlias()- Returns:
- true wenn es sich um einen Alias-Benutzer handelt - d.h. wenn sich ein Lehrer oder Admin als anderer User verkleidet hat
-