Skip to content

Commit

Permalink
Added client metadata flag, fixes ory#3091
Browse files Browse the repository at this point in the history
  • Loading branch information
rikkuness committed Apr 26, 2022
1 parent 510615b commit d81e305
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
16 changes: 16 additions & 0 deletions cmd/cli/handler_client.go
Expand Up @@ -101,6 +101,13 @@ func (h *ClientHandler) CreateClient(cmd *cobra.Command, args []string) {
ek, encryptSecret, err := newEncryptionKey(cmd, nil)
cmdx.Must(err, "Failed to load encryption key: %s", err)

var metadata models.JSONRawMessage
metadataStr := flagx.MustGetString(cmd, "metadata")
if metadataStr != "" {
err = json.Unmarshal([]byte(flagx.MustGetString(cmd, "metadata")), &metadata)
cmdx.Must(err, "Failed to parse metadata: %s", err)
}

cc := models.OAuth2Client{
ClientID: flagx.MustGetString(cmd, "id"),
ClientSecret: secret,
Expand All @@ -119,6 +126,7 @@ func (h *ClientHandler) CreateClient(cmd *cobra.Command, args []string) {
SubjectType: flagx.MustGetString(cmd, "subject-type"),
Audience: flagx.MustGetStringSlice(cmd, "audience"),
PostLogoutRedirectUris: flagx.MustGetStringSlice(cmd, "post-logout-callbacks"),
Metadata: metadata,
BackchannelLogoutSessionRequired: flagx.MustGetBool(cmd, "backchannel-logout-session-required"),
BackchannelLogoutURI: flagx.MustGetString(cmd, "backchannel-logout-callback"),
FrontchannelLogoutSessionRequired: flagx.MustGetBool(cmd, "frontchannel-logout-session-required"),
Expand Down Expand Up @@ -165,6 +173,13 @@ func (h *ClientHandler) UpdateClient(cmd *cobra.Command, args []string) {
ek, encryptSecret, err := newEncryptionKey(cmd, nil)
cmdx.Must(err, "Failed to load encryption key: %s", err)

var metadata models.JSONRawMessage
metadataStr := flagx.MustGetString(cmd, "metadata")
if metadataStr != "" {
err = json.Unmarshal([]byte(flagx.MustGetString(cmd, "metadata")), &metadata)
cmdx.Must(err, "Failed to parse metadata: %s", err)
}

id := args[0]
cc := models.OAuth2Client{
ClientID: id,
Expand All @@ -184,6 +199,7 @@ func (h *ClientHandler) UpdateClient(cmd *cobra.Command, args []string) {
SubjectType: flagx.MustGetString(cmd, "subject-type"),
Audience: flagx.MustGetStringSlice(cmd, "audience"),
PostLogoutRedirectUris: flagx.MustGetStringSlice(cmd, "post-logout-callbacks"),
Metadata: metadata,
BackchannelLogoutSessionRequired: flagx.MustGetBool(cmd, "backchannel-logout-session-required"),
BackchannelLogoutURI: flagx.MustGetString(cmd, "backchannel-logout-callback"),
FrontchannelLogoutSessionRequired: flagx.MustGetBool(cmd, "frontchannel-logout-session-required"),
Expand Down
1 change: 1 addition & 0 deletions cmd/clients_create.go
Expand Up @@ -62,6 +62,7 @@ To encrypt auto generated client secret, use "--pgp-key", "--pgp-key-url" or "--
cmd.Flags().String("secret", "", "Provide the client's secret")
cmd.Flags().StringP("name", "n", "", "The client's name")
cmd.Flags().StringSlice("post-logout-callbacks", []string{}, "List of allowed URLs to be redirected to after a logout")
cmd.Flags().String("metadata", "", "A valid JSON string containing metadata")

// back-channel logout options
cmd.Flags().Bool("backchannel-logout-session-required", false, "Boolean flag specifying whether the client requires that a sid (session ID) Claim be included in the Logout Token to identify the client session with the OP when the backchannel-logout-callback is used. If omitted, the default value is false.")
Expand Down
1 change: 1 addition & 0 deletions cmd/clients_update.go
Expand Up @@ -41,6 +41,7 @@ To encrypt auto generated client secret, use "--pgp-key", "--pgp-key-url" or "--
cmd.Flags().String("secret", "", "Provide the client's secret")
cmd.Flags().StringP("name", "n", "", "The client's name")
cmd.Flags().StringSlice("post-logout-callbacks", []string{}, "List of allowed URLs to be redirected to after a logout")
cmd.Flags().String("metadata", "", "A valid JSON string containing metadata")

// back-channel logout options
cmd.Flags().Bool("backchannel-logout-session-required", false, "Boolean flag specifying whether the client requires that a sid (session ID) Claim be included in the Logout Token to identify the client session with the OP when the backchannel-logout-callback is used. If omitted, the default value is false.")
Expand Down

0 comments on commit d81e305

Please sign in to comment.