Die 3 Codezeilen hier bedeuten nicht, dass Sie wirklich nur 3 Codezeilen schreiben müssen, sondern basierend auf einem Spring Boot OAuth2 -Dienst, den ich geschrieben habe. Sie müssen nur 3 Zeilen von Datenbankkonfigurationsinformationen ändern, um einen Spring -Start -OAuth2 -Dienst zu erhalten.
Projektadresse https://github.com/jeesun/oauthserver
Oauthserver
Einführung
OAuthServer ist ein vollständiger eigenständiger OAuth -Server, der auf Spring Boot OAuth2 basiert. Erstellen Sie einfach relevante Datentabellen und ändern Sie die Verbindungsinformationen der Datenbank, und Sie können einen OAuth -Server abrufen.
Unterstützte relationale Datenbanken:
Implementierte Funktionen:
Nutzungsprozess
1. Erstellen Sie Tabelle
PostgreSQL
Führen Sie bitte SRC/Main/Ressourcen/Schema-pg.sql aus, um die Erstellung der Datentabelle zu vervollständigen und die Testdaten zu importieren.
Mysql
Führen Sie src/main/ressourcen/schema-mysql.sql aus, um die Erstellung der Datentabelle und den Import von Testdaten zu vervollständigen.
2. Die Datenbankverbindungsinformationen ändern
In Application.yml ist die Verbindungsinformationen der Datenbank konfiguriert. Unter ihnen müssen die Konfigurationselemente Benutzername und Kennwort von Jasypt verschlüsselt werden und können nicht direkt ausgefüllt werden. Der Verschlüsselungsschlüssel wird von Jasypt.encryptor.Password konfiguriert. Sie müssen das Utiltests -Tool im Testverzeichnis verwenden, um die verschlüsselte Zeichenfolge zu erhalten.
Postgresql# postgresql Verbindungsinformationen Treiberklasse-Name: org.postgresql.driver URL: JDBC: postgresql: //127.0.1: 5432/thymelte? UseUnicode = true & charakterscoding = utf-8 userername: orn ENC (ABDQ6LYOSPRYFQHCQZEMTXROZYJVJIA4) MYSQL# MYSQL-Verbindungsinformationstreiber-Klasse-NAME: com.mysql.jdbc.driver URL: JDBC: MySQL: //127.0.1: 3306/testen? ENC (yiyjvwtuldgn // yab3kbua ==) Passwort: ENC (9OAIJKFGGSDFAHH3OXY63RHWQ+AMDMIJ)
3. Run
Jetzt ist alles fertig. Führen Sie das Projekt aus. Wenn das Programm erfolgreich beginnt, bedeutet dies, dass Sie es erfolgreich konfiguriert haben.
4. Test
Ich habe beim Erstellen der Tabelle Testdaten in die Tabelle hinzugefügt. Die Werte der folgenden Anforderungsparameter sind alle Testdaten und finden Sie in der Datentabelle. Bitte gehen Sie zur Datentabelle, um den entsprechenden Wert gemäß Ihren Anforderungen zu ändern.
In der Tabelle OAuth_Client_Details -Tabelle gibt es bereits Testdaten. Die Werte der Spalten Client_id und client_secret entsprechen den Werten der Grundnutzungsparameter für OAUTH -Anforderungen. Die Spalten access_token_validity und Spalte refresh_token_validity repräsentieren die Gültigkeitsdauer von Access_Token bzw. Refresh_Token in Sekunden. Die Testdaten 7200 und 5184000 repräsentieren 2 Stunden bzw. 2 Monate (60 Tage). Dies ist eine relativ vernünftige Einstellung der Gültigkeitszeit, die als Referenz verwendet werden kann.
Alle Schnittstellen im Zusammenhang mit Token erfordern eine grundlegende OAuth -Authentifizierung.
1. Erhalten Sie Access_Token gemäß Benutzername und Passwort
Post http: // localhost: 8182/oauth/token?
Erfolgreiches Beispiel:
{ "access_token": "ca582cd1-be6c-4a5a-82ec-10af7a8e06eb", "token_type": "bearer", "refresh_token": "c24a6143-97c8-4642-88b9-d5c5b902b487", "expires_in": 3824, "Scope": "Read schreiben Vertrauen"}Fehlerbeispiel (falscher Benutzername oder Passwort)
{"Fehler": "Invalid_grant", "ERROR_DESISCHLICHE": "Schlechte Anmeldeinformationen"}2. Überprüfen Sie Access_Token
Holen Sie sich http: // localhost: 8182/oAuth/check_token? Token = ca582cd1-be6c-4A5a-82ec-10AF7A8E06EB
Erfolgreiches Beispiel
{ "aud": [ "oauth2-resource" ], "exp": 1524507296, "user_name": "jeesun", "authorities": [ "ROLE_ADMIN", "ROLE_USER" ], "client_id": "clientIdPassword", "scope": [ "read", "write", "trust" ]}Fehlerbeispiel (Access_token abgelaufen)
{"Fehler": "Invalid_token", "ERROR_DESISCHLISS": "Token wurde nicht erkannt"}3. Erhalten Sie neue access_token gemäß realisierung_token
Post http: // localhost: 8182/oauth/token?
Erfolgreiches Beispiel
{ "access_token": "690ecd7d-f2b7-4faa-ac45-5b7a319478e8", "token_type": "bearer", "refresh_token": "c24a6143-97c8-4642-88b9-d5c5b902b487", "expires_in": 7199, "Scope": "Read schreiben Vertrauen"}App -Übungsanleitung
Nachdem die App die Token -Informationen erhalten hat, muss die Token -Informationen und die Anfragezeit gespeichert werden. Bevor Sie das Access_Token übergeben, müssen Sie überprüfen, ob die Access_Token abläuft. Um den Hintergrunddruck zu verringern, sollte überprüfen, ob Access_Token ausgelaufen ist, sollte lokal in der App erfolgen. Durch den Vergleich des Werts von Tokens KeyExpires_in (Rest -Gültigkeitszeitraum) sowie die lokale Datenanforderung und die aktuelle Zeit ist leicht festzustellen, ob das Access_Token abgelaufen ist. Wenn es abläuft, müssen Sie über Refresh_Token ein neues Access_Token erhalten. Da die Gültigkeitsdauer von Access_Token nur 2 Stunden beträgt, ist diese Überprüfung erforderlich. Gleiches gilt für Refresh_Token.
Zusammenfassen
Die oben genannten sind die drei vom Editor eingeführten Codezeilen, um den Spring Boot OAuth2 -Dienst schnell zu implementieren. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!