OAuthValidation

object OAuthValidation : KoinComponent

Functions

Link copied to clipboard

任意のタイプのクライアントを認証する

Link copied to clipboard

Confidentialクライアントを認証する

Link copied to clipboard
fun buildErrorRedirectUri(redirectUri: String, error: String, errorDescription: String, state: String): String
Link copied to clipboard
fun buildSuccessRedirectUri(redirectUri: String, code: String, state: String): String
Link copied to clipboard
fun RoutingContext.extractBasicCredentials(): Pair<String, String>?

Authorization: Basic ヘッダーからclient_idとclient_secretを取得する RFC 6749 Section 2.3.1 (client_secret_basic) 準拠

Link copied to clipboard
fun RoutingContext.extractClientCredentials(formParameters: Parameters): Either<ClientAuthFailure, ClientCredentials>

フォームパラメータとBasic認証ヘッダーからクライアントクレデンシャルを抽出する RFC 6749 Section 2.3: 認証方式の併用禁止チェックを含む

Link copied to clipboard
open fun getKoin(): Koin
Link copied to clipboard

code_verifierの形式を検証する RFC 7636 Section 4.1: 43〜128文字、A-Za-z0-9-._~のみ許可

Link copied to clipboard

クライアントIDでクライアントデータを取得・検証する DBからクライアント情報を取得

Link copied to clipboard
fun validateCodeVerifier(codeChallenge: String, codeVerifier: String): Boolean

code_verifierとcode_challengeを検証する(S256方式) RFC 7636 Section 4.6: SHA-256ハッシュとBase64URLエンコードで比較

Link copied to clipboard
fun validatePKCE(codeChallenge: String?, codeChallengeMethod: String?): Boolean
Link copied to clipboard
fun validateRedirectUri(clientData: ClientData, redirectUri: String): Boolean

Validate the redirect URI. 登録されたredirect_uriを正規表現パターンとして使用して検証する 末尾に/.*を追加してサブパスもマッチさせる

Link copied to clipboard
fun validateScope(scopeString: String): Boolean

スコープ文字列を検証する RFC 6749 Section 3.3: リクエストされたスコープが許可リストに含まれているか確認