func (m *ClientManager) generateClientCredentials(cli client.Client) (client.Client, error) { // Generate Client ID if len(cli.Metadata.RedirectURIs) < 1 { return cli, errors.New("no client redirect url given") } clientID, err := m.clientIDGenerator(cli.Metadata.RedirectURIs[0].Host) if err != nil { return cli, err } // Generate Secret secret, err := m.secretGenerator() if err != nil { return cli, err } clientSecret := base64.URLEncoding.EncodeToString(secret) cli.Credentials = oidc.ClientCredentials{ ID: clientID, Secret: clientSecret, } return cli, nil }
func (m *ClientManager) addClientCredentials(cli *client.Client) error { var seed string if cli.Public { seed = cli.Metadata.ClientName } else { seed = cli.Metadata.RedirectURIs[0].Host } var err error var clientID string if cli.Credentials.ID != "" { clientID = cli.Credentials.ID } else { // Generate Client ID clientID, err = m.clientIDGenerator(seed) if err != nil { return err } } var clientSecret string if cli.Credentials.Secret != "" { clientSecret = cli.Credentials.Secret } else { // Generate Secret secret, err := m.secretGenerator() if err != nil { return err } clientSecret = base64.URLEncoding.EncodeToString(secret) } cli.Credentials = oidc.ClientCredentials{ ID: clientID, Secret: clientSecret, } return nil }