util

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2020 License: Apache-2.0 Imports: 19 Imported by: 3

Documentation

Overview

Copyright 2018 Google Inc.

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.

Copyright 2019 Google Inc.

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.

Copyright 2020 Google Inc.

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.

Copyright 2018 Google Inc.

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.

Copyright 2020 Google Inc.

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.

Copyright 2018 Google Inc.

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.

Copyright 2020 Google Inc.

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.

Index

Constants

View Source
const CacheFileName = ".oauth2l"
View Source
const StsURL = "https://securetoken.googleapis.com/v1alpha2/identitybindingtoken"

StsURL is Google's Secure Token Service endpoint used for obtaining STS token. TODO (andyzhao): Replace with https://sts.googleapis.com/v1/token when ready.

Variables

View Source
var WebDirectory string = filepath.Join(sgauth.GuessUnixHomeDir(), defaultWebPackageName)

Functions

func BuildHeader

func BuildHeader(tokenType string, token string) string

Returns the given token in standard header format.

func BuildRefreshCredentialsJSON added in v1.1.0

func BuildRefreshCredentialsJSON(refreshToken string, credentialsJSON string) string

BuildRefreshCredentialsJSON attempts to construct a refreshCredentialsJSON using a refreshToken and an OAuth Client ID credentialsJSON. Empty string is returned if this is not possible.

func ClearCache

func ClearCache() error

func Curl

func Curl(settings *sgauth.Settings, taskSettings *TaskSettings)

Fetches token with the given settings using Google Authenticator and use the token as header to make curl request.

func CurlCommand

func CurlCommand(cli string, header string, url string, extraArgs ...string)

Executes curl command with provided header and params.

func EncodeClaims added in v1.1.0

func EncodeClaims(settings *sgauth.Settings) string

EncodeClaims base64 encodes supported STS claims in settings

func Fetch

func Fetch(settings *sgauth.Settings, taskSettings *TaskSettings)

Fetches and prints the token in plain text with the given settings using Google Authenticator.

func Header(settings *sgauth.Settings, taskSettings *TaskSettings)

Fetches and prints the token in header format with the given settings using Google Authenticator.

func Info

func Info(token string) int

Fetches the information of the given token.

func InsertCache

func InsertCache(settings *sgauth.Settings, token *sgauth.Token) error

func LookupCache

func LookupCache(settings *sgauth.Settings) (*sgauth.Token, error)

func Reset

func Reset()

Resets the cache.

func SSOFetch

func SSOFetch(cli string, email string, scope string) (*sgauth.Token, error)

Fetches and returns OAuth access token using SSO CLI.

func StsExchange added in v1.1.0

func StsExchange(accessToken string, encodedClaims string) (*sgauth.Token, error)

Exchanges an OAuth Access Token to an Sts token with base64 encoded claims

func Test

func Test(token string) int

Tests the given token. Returns 0 for valid tokens. Otherwise returns 1.

func Web added in v1.1.0

func Web()

Runs the frontend/backend for OAuth2l Playground

func WebStop added in v1.1.0

func WebStop()

Closes the containers and removes stopped containers

Types

type CacheKey

type CacheKey struct {
	// The JSON credentials content downloaded from Google Cloud Console.
	CredentialsJSON string
	// If specified, use OAuth. Otherwise, JWT.
	Scope string
	// The audience field for JWT auth and UAT
	Audience string
	// The email used for SSO and domain-wide delegation.
	Email string
	// The Google API key
	APIKey string
	// The QuotaProject field for STS
	QuotaProject string
	// If specified, performs STS exchange on top of base OAuth
	Sts bool
}

The key struct that used to identify an auth token fetch operation.

type TaskSettings added in v1.1.0

type TaskSettings struct {
	// Ouput format for Fetch task
	Format string
	// CurlCli override for Curl task
	CurlCli string
	// Url endpoint for Curl task
	Url string
	// Extra args for Curl task
	ExtraArgs []string
	// SsoCli override for Sso task
	SsoCli string
	// Refresh expired access token in cache
	Refresh bool
}

An extensible structure that holds the settings used by different oauth2l tasks. These settings are used by oauth2l only and are not part of GUAC settings.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL