func getSharedTokenExpiration()

in local-container-endpoints/handlers/credentials_handler.go [285:311]


func getSharedTokenExpiration() (time.Time, error) {
	durationStr := utils.GetValue(fmt.Sprintf("%ds", config.DefaultSharedTokenExpiration), config.SharedTokenExpirationVar)
	duration, err := time.ParseDuration(durationStr)

	if err != nil {
		// If they didn't provide a unit, try to parse this as seconds.
		durationSeconds, err := strconv.ParseInt(durationStr, 0, 64)
		if err != nil {
			logrus.Warnf(
				"Could not parse SHARED_TOKEN_EXPIRATION value, defaulting to %d seconds: %s",
				config.DefaultSharedTokenExpiration, durationStr)
			durationSeconds = config.DefaultSharedTokenExpiration
		}

		duration = time.Duration(durationSeconds) * time.Second
	}

	// Make sure the duration is always in the future.
	if duration <= 0 {
		logrus.Warnf(
			"SHARED_TOKEN_EXPIRATION value must be positive, forcing to %d seconds: %s",
			config.DefaultSharedTokenExpiration, durationStr)
		duration = config.DefaultSharedTokenExpiration * time.Second
	}

	return time.Now().UTC().Add(duration), nil
}