ここのコードの3行は、実際に3行のコードを書くだけでなく、私が書いたスプリングブートOAuth2サービスに基づいているという意味ではありません。 Spring Boot OAuth2サービスを取得するには、3行のデータベース構成情報を変更するだけです。
プロジェクトアドレスhttps://github.com/jeesun/oauthserver
oauthserver
導入
OauthServerは、Spring Boot OAuth2に基づく完全なスタンドアロンOAuthサーバーです。関連するデータテーブルを作成し、データベースの接続情報を変更するだけで、OAuthサーバーを取得できます。
サポートされているリレーショナルデータベース:
実装された関数:
使用プロセス
1.テーブルを作成します
postgreSql
SRC/Main/Resources/Schema-PG.SQLを実行して、データテーブルの作成を完了し、テストデータをインポートしてください。
mysql
SRC/Main/Resources/Schema-Mysql.sqlを実行して、データテーブルの作成とテストデータのインポートを完了してください。
2.データベース接続情報を変更します
Application.ymlでは、データベースの接続情報が構成されています。その中で、構成項目のユーザー名とパスワードはjasyptで暗号化する必要があり、直接入力することはできません。暗号化キーは、jasypt.encryptor.passwordによって構成されています。暗号化された文字列を取得するには、テストディレクトリのUtiltestsツールを使用する必要があります。
postgreSQl#POSTGRESQL Connection Information Driver-Class-Name:org.postgresql.Driver URL:JDBC:POSTGRESQL://127.0.0.1:5432/THYMELTE?USEUNICODE = true&CharatleEncoding = utf-8 Username:enc(htpbg9ffq+7pg9fq+7pg9ffq+7pg9fq+ enc(abdq6lyospryfqhcqzemtxrozyjvjia4)mysql#mysql connection Information driver-class-name:com.mysql.jdbc.driver URL:jdbc:mysql://127.0.0.1:3306/test usuunicode = true&charalderencoding = usedding enc(yiyjvwtuldgn // yab3kbua ==)パスワード:enc(9oaijkfggsdfahh3oxy63rhwq+amdmij)
3。実行します
今、すべてが準備ができています。プロジェクトを実行します。プログラムが正常に開始されると、それを正常に構成したことを意味します。
4。テスト
テーブルを構築するときに、テストデータをテーブルに追加しました。次の要求パラメーターの値はすべてテストデータであり、データテーブルに記載されています。データテーブルに移動して、要件に応じて対応する値を変更してください。
テーブルoauth_client_detailsテーブルには、すでにテストデータがあります。列のclient_idおよびclient_secretの値は、それぞれ基本的なOAuth要求パラメーターの値のユーザー名とパスワードの値に対応しています。列Access_Token_Validityと列REFRESH_TOKEN_ALIDITIONは、それぞれ秒単位でAccess_Token_Token_Tokenおよびrefresh_tokenの有効期間を表します。テストデータ7200と5184000は、それぞれ2時間2か月(60日)を表します。これは、比較的妥当な有効期間の設定であり、参照として使用できます。
関連するすべてのインターフェイスには、基本的なOAuth認証が必要です。
1.ユーザー名とパスワードに従ってAccess_Tokenを取得します
http:// localhost:8182/oauth/token?grant_type = password&username = jeesun&password = 1234567890c
成功した例:
{"Access_token": "CA582CD1-BE6C-4A5A-82EC-10AF7A8E06EB"、 "TOKEN_TYPE": "BEARER"、 "REFRESH_TOKEN": " 「スコープ」:「書き込み信頼を読む」}失敗の例(間違ったユーザー名またはパスワード)
{"error": "invalid_grant"、 "error_description": "悪い資格情報"}2。Access_Tokenを確認してください
http:// localhost:8182/oauth/check_token?token = ca582cd1-be6c-4a5a-82ec-10af7a8e06ebを入手してください
成功した例
{"aud":["oauth2-resource"]、 "exp": "1524507296、" user_name ":" jeesun "、" authorities ":[" role_admin "、" role_user "]、" client_id ":" clientidpassword "、" scope ":[" write "、" "]、"失敗の例(Access_Tokenの期限切れ)
{"error": "invalid_token"、 "error_description": "トークンは認識されませんでした"}3. refresh_tokenによると、新しいアクセスを取得します
http:// localhost:8182/oauth/token?grant_type = refresh_token&refresh_token = c24a6143-97c8-4642-88b9-d5c5b902b487
成功した例
{"Access_Token": "690ECD7D-F2B7-4FAA-AC45-5B7A319478E8"、 "TOKEN_TYPE": "BEARER"、 "REFRESH_TOKEN": "C24A6143-97C8-4642-88B9-D5C5B902B487" 「スコープ」:「書き込み信頼を読む」}アプリ練習ガイド
アプリがトークン情報を取得した後、トークン情報とリクエスト時間を保存する必要があります。 Access_Tokenを通過する前に、Access_Tokenが有効期限を切るかどうかを確認する必要があります。バックグラウンド圧を下げるには、Access_Tokenの有効期限が切れるかどうかを確認する必要があるかどうかを確認します。 TokenのkeyExpires_in(有効期間のまま)値と、ローカルレコード要求時間と現在の時刻を比較することにより、Access_Tokenの有効期限が切れたかどうかを簡単に判断できます。有効期限が切れた場合は、refresh_tokenを介して新しいAccess_Tokenを取得する必要があります。 Access_Tokenの有効期間はわずか2時間であるため、この検証が必要です。 refresh_tokenにも同じことが言えます。
要約します
上記は、Spring Boot OAuth2サービスをすばやく実装するために、編集者によって導入された3行のコードです。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!