All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cala-k8s-client_3.0.20.2.source-code.AuthenticationParams.scala Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2022 Hossein Naderi
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package dev.hnaderi.k8s
package client

final case class AuthenticationParams(
    params: Seq[(String, String)] = Nil,
    headers: Seq[(String, String)] = Nil,
    cookies: Seq[(String, String)] = Nil
)

object AuthenticationParams {
  def params(vs: (String, String)*): AuthenticationParams =
    AuthenticationParams(params = vs)
  def headers(vs: (String, String)*): AuthenticationParams =
    AuthenticationParams(headers = vs)
  def cookies(vs: (String, String)*): AuthenticationParams =
    AuthenticationParams(cookies = vs)

  def basic(username: String, password: String): AuthenticationParams = headers(
    "Authorization" -> Utils.base64(s"$username:$password")
  )
  def bearer(value: String): AuthenticationParams = headers(
    "Authorization" -> s"Bearer $value"
  )

  def from(auth: AuthInfo): AuthenticationParams =
    auth.token
      .map(bearer(_))
      .orElse(
        auth.username
          .zip(auth.password)
          .map { case (user, pass) => basic(user, pass) }
          .headOption
      )
      .getOrElse(AuthenticationParams())

  val empty: AuthenticationParams = AuthenticationParams()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy