Package de.svws_nrw.data.oauth2
Klasse OAuth2Client
java.lang.Object
de.svws_nrw.data.oauth2.OAuth2Client
Diese Klasse dient dem Verbinden mit einem OAuth2 Server mit ggf. vorhandenen Token. Das Token wird,
sofern nicht im Cache vorhanden oder ungültig über das Client-Secret und Client-Id erzeugt.
Der Client stellt darüber hinaus HTTP-Methoden zum Verbinden mit OAuth2-Servern bereit.
-
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungOAuth2Client
(DBEntityManager conn, Logger logger, OAuth2ServerTyp serverTyp, boolean updateToken) Erzeugt einen neuen OAuth2-Client und erneuert ggf. das aktuelle Token. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungboolean
Prüft das TLS-Zertifikat des Servers mithilfe eines TLS-Handshakes.<T> HttpResponse
<T> get
(String path, HttpResponse.BodyHandler<T> handler) Führt ein GET-Request gegen den gegebenen Pfad aus<T> HttpResponse
<T> getUnauthorized
(String path, HttpResponse.BodyHandler<T> handler) Führt ein GET-Request gegen den gegebenen Pfad ohne Authorization-Header aus<T> HttpResponse
<T> postEmpty
(String path, HttpResponse.BodyHandler<T> handler) Führt ein POST-Request gegen den gegebenen Pfad aus<T> HttpResponse
<T> postFormUrlEncoded
(String path, HttpResponse.BodyHandler<T> handler, String... keyValuePairs) Sendet Daten mit Content-Type application/x-www-form-urlencoded.<T> HttpResponse
<T> postMultipart
(String path, String filename, byte[] bytes, HttpResponse.BodyHandler<T> handler) Sendet Daten an eine URL mit dem Content-Type multipart/form-data.<T> HttpResponse
<T> put
(String path, HttpResponse.BodyHandler<T> handler, String daten) Sendet Daten als PUT mit Content-Type application/json.
-
Konstruktordetails
-
OAuth2Client
public OAuth2Client(DBEntityManager conn, Logger logger, OAuth2ServerTyp serverTyp, boolean updateToken) throws ApiOperationException Erzeugt einen neuen OAuth2-Client und erneuert ggf. das aktuelle Token.- Parameter:
conn
- die Datenbankverbindung zur SVWS-DB, um die aktuell gespeicherten OAuth2-Verindungsdaten abzufragenlogger
- ein Logger für das Loggen der Kommunikation über diesen ClientserverTyp
- der Server-Typ des zu kontaktierenden OAuth2-ServersupdateToken
- gibt an, ob das Token überprüft und ggf. erneuert werden soll- Löst aus:
ApiOperationException
- im Fehlerfall
-
-
Methodendetails
-
postMultipart
public <T> HttpResponse<T> postMultipart(String path, String filename, byte[] bytes, HttpResponse.BodyHandler<T> handler) throws ApiOperationException Sendet Daten an eine URL mit dem Content-Type multipart/form-data.- Typparameter:
T
- der generische Typ derHttpResponse
und des entsprechendenHttpResponse.BodyHandler
- Parameter:
path
- der Pfad als Teil der URL an den der Request gesendet wirdfilename
- der Dateiname, der verwendet wirdbytes
- die Bytes, die innerhalb des Files gesendet werdenhandler
- der BodyHandler für die Response- Gibt zurück:
- die Response
- Löst aus:
ApiOperationException
- im Fehlerfall
-
postFormUrlEncoded
public <T> HttpResponse<T> postFormUrlEncoded(String path, HttpResponse.BodyHandler<T> handler, String... keyValuePairs) throws ApiOperationException Sendet Daten mit Content-Type application/x-www-form-urlencoded. Dabei werden die übergebenen Strings als Schlüssel-Wert-Paare betrachtet- Typparameter:
T
- generischer Typ desHttpResponse
undHttpResponse.BodyHandler
- Parameter:
path
- der Pfad als Teil der URL für diesen OauthClient, an den die Daten geschickt werdenhandler
- der BodyHandler für den Response-BodykeyValuePairs
- Schlüssel-Wert-Paare für die Form-Parameter, gerader Index = Schlüssel, ungerader Index = Wert- Gibt zurück:
- die Response
- Löst aus:
ApiOperationException
- im Fehlerfall
-
postEmpty
public <T> HttpResponse<T> postEmpty(String path, HttpResponse.BodyHandler<T> handler) throws ApiOperationException Führt ein POST-Request gegen den gegebenen Pfad aus- Typparameter:
T
- generischer Typ desHttpResponse
undHttpResponse.BodyHandler
- Parameter:
path
- der Pfad als Teil der URL für diesen OauthClient, an den das POST geschickt wirdhandler
- der BodyHandler für den Response-Body- Gibt zurück:
- die Response
- Löst aus:
ApiOperationException
- im Fehlerfall
-
put
public <T> HttpResponse<T> put(String path, HttpResponse.BodyHandler<T> handler, String daten) throws ApiOperationException Sendet Daten als PUT mit Content-Type application/json.- Typparameter:
T
- generischer Typ desHttpResponse
undHttpResponse.BodyHandler
- Parameter:
path
- der Pfad als Teil der URL für diesen OauthClient, an den die Daten geschickt werdenhandler
- der BodyHandler für den Response-Bodydaten
- die Daten- Gibt zurück:
- die Response
- Löst aus:
ApiOperationException
- im Fehlerfall
-
get
public <T> HttpResponse<T> get(String path, HttpResponse.BodyHandler<T> handler) throws ApiOperationException Führt ein GET-Request gegen den gegebenen Pfad aus- Typparameter:
T
- generischer Typ desHttpResponse
undHttpResponse.BodyHandler
- Parameter:
path
- der Pfad als Teil der URL für diesen OauthClient, an den das GET geschickt wirdhandler
- der BodyHandler für den Response-Body- Gibt zurück:
- die Response
- Löst aus:
ApiOperationException
- im Fehlerfall
-
getUnauthorized
public <T> HttpResponse<T> getUnauthorized(String path, HttpResponse.BodyHandler<T> handler) throws ApiOperationException Führt ein GET-Request gegen den gegebenen Pfad ohne Authorization-Header aus- Typparameter:
T
- generischer Typ desHttpResponse
undHttpResponse.BodyHandler
- Parameter:
path
- der Pfad als Teil der URL für diesen OauthClient, an den das GET geschickt wirdhandler
- der BodyHandler für den Response-Body- Gibt zurück:
- die Response
- Löst aus:
ApiOperationException
- im Fehlerfall
-
checkCertificate
Prüft das TLS-Zertifikat des Servers mithilfe eines TLS-Handshakes. Weicht dieses von den bisherigen Informationen ab, so wird das neue Zertifikat in das Datenbank-DTO geschrieben und persistiert.- Gibt zurück:
- true, falls das Zertifikat erfolgreich validiert wurde. Ansonsten false.
- Löst aus:
ApiOperationException
- im Fehlerfall
-