diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index a2ecaf585..82223c5a3 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -944,7 +944,44 @@ tooltip.IDTokenLifetime.browser=Lifetime of ID token (browser) tooltip.includeIssuerInResponse=Whether to include issuer -parameter in the responses as specified by RFC 9207. If set to true also consider including authorization_response_iss_parameter_supported to the OP metadata. tooltip.refreshTokenLifetime.oauth=Lifetime of refresh token tooltip.alwaysIncludedAttributes.browser=Specifies IdPAttributes to always include in ID token regardless of response_type -tooltip.encryptionOptional=Whether the absence of encryption details in a client's metadata should fail when issuing an ID token +tooltip.encryptionOptional=Whether the absence of encryption details in a client\u0027s metadata should fail when issuing an ID token tooltip.IDTokenLifetime=Lifetime of ID token issued to client tooltip.deniedUserInfoAttributes=Specifies IdPAttributes to omit from UserInfo token -tooltip.resolveAttributes.oauth=Whether to run the attribute resolution/filtering step \ No newline at end of file +tooltip.resolveAttributes.oauth=Whether to run the attribute resolution/filtering step + +label.dynamic-registration=Dynamic Registration +label.dynamic-registration-configuration=Dynamic Registration +action.dynamic-registrations=Dynamic registrations +action.add-new-dynamic-registration=Add a new dynamic registration +label.dynamic-registration-name=Name + +label.dynamic-registration-name=Name +tooltip.dynamic-registration-name=Name +label.dynamic-registration-redirectUris=Redirect uris +tooltip.dynamic-registration-redirectUris=Redirect uris +label.dynamic-registration-responseTypes=Response types +tooltip.dynamic-registration-responseTypes=Response types +label.dynamic-registration-grantTypes=Grant types +tooltip.dynamic-registration-grantTypes=Grant types +label.dynamic-registration-applicationType=Application type +tooltip.dynamic-registration-applicationType=Application type +label.dynamic-registration-contacts=Contacts +tooltip.dynamic-registration-contacts=Contacts +label.dynamic-registration-subjectType=Subject type +tooltip.dynamic-registration-subjectType=Subject type +label.dynamic-registration-jwks=Jwks +tooltip.dynamic-registration-jwks=Jwks +label.dynamic-registration-jwksUri=Jwks uri +tooltip.dynamic-registration-jwksUri=Jwks uri +label.dynamic-registration-tokenEndpointAuthMethod=Token endpoint auth method +tooltip.dynamic-registration-tokenEndpointAuthMethod=Token endpoint auth method +label.dynamic-registration-logo-uri=Logo uri +tooltip.dynamic-registration-logo-uri=Logo uri +label.dynamic-registration-policy-uri=Policy uri +tooltip.dynamic-registration-policy-uri=Policy uri +label.dynamic-registration-tosuri=To uri +tooltip.dynamic-registration-tosuri=To uri +label.dynamic-registration-scope=Scope +tooltip.dynamic-registration-scope=Scope +label.dynamic-registration-enabled=Enabled +tooltip.dynamic-registration-enabled=Enabled diff --git a/ui/public/assets/schema/dynamic-registration/oidc.json b/ui/public/assets/schema/dynamic-registration/oidc.json index 4b6f8fb85..d9e0ad451 100644 --- a/ui/public/assets/schema/dynamic-registration/oidc.json +++ b/ui/public/assets/schema/dynamic-registration/oidc.json @@ -10,76 +10,84 @@ "maxLength": 255 }, "resourceId": { + "title": "label.dynamic-registration-resourceId", + "description": "tooltip.dynamic-registration-resourceId", "type": "string" }, "redirectUris": { + "title": "label.dynamic-registration-redirectUris", + "description": "tooltip.dynamic-registration-redirectUris", "type": "array", "items": { "type": "string" } }, "responseTypes": { + "title": "label.dynamic-registration-responseTypes", + "description": "tooltip.dynamic-registration-responseTypes", "type": "array", "items": { "type": "string" } }, "grantTypes": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-grantTypes", + "description": "tooltip.dynamic-registration-grantTypes", "type": "string" }, "applicationType": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-applicationType", + "description": "tooltip.dynamic-registration-applicationType", "type": "string" }, "contacts": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-contacts", + "description": "tooltip.dynamic-registration-contacts", "type": "string" }, "subjectType": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-subjectType", + "description": "tooltip.dynamic-registration-subjectType", "type": "string" }, "jwks": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-jwks", + "description": "tooltip.dynamic-registration-jwks", "type": "string" }, "jwksUri": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-jwksUri", + "description": "tooltip.dynamic-registration-jwksUri", "type": "string" }, "tokenEndpointAuthMethod": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-tokenEndpointAuthMethod", + "description": "tooltip.dynamic-registration-tokenEndpointAuthMethod", "type": "string" }, "logoUri": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-logo-uri", + "description": "tooltip.dynamic-registration-logo-uri", "type": "string" }, "policyUri": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-policy-uri", + "description": "tooltip.dynamic-registration-policy-uri", "type": "string" }, "tosUri": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-tosuri", + "description": "tooltip.dynamic-registration-tosuri", "type": "string" }, "scope": { - "title": "label.dynamic-registration-", - "description": "tooltip.dynamic-registration-", + "title": "label.dynamic-registration-scope", + "description": "tooltip.dynamic-registration-scope", "type": "string" }, "enabled": { + "title": "label.dynamic-registration-enabled", + "description": "tooltip.dynamic-registration-enabled", "type": "boolean" }, "modifiedDate": "2022-10-21T11:57:24.391649", diff --git a/ui/src/app/dynamic-registration/hoc/DynamicConfigurationDefinition.js b/ui/src/app/dynamic-registration/hoc/DynamicConfigurationDefinition.js new file mode 100644 index 000000000..9ccf0bd42 --- /dev/null +++ b/ui/src/app/dynamic-registration/hoc/DynamicConfigurationDefinition.js @@ -0,0 +1,66 @@ +import { BASE_PATH } from '../../App.constant'; + +export const DynamicRegistrationDefinition = { + label: 'Dynamic Registration', + type: '@DynamicRegistration', + steps: [ + { + id: 'common', + label: 'label.dynamic-registration', + index: 1, + fields: [ + 'name', + 'resourceId', + 'redirectUris', + 'responseTypes', + 'grantTypes', + 'applicationType', + 'contacts', + 'subjectType', + 'jwks', + 'jwksUri', + 'tokenEndpointAuthMethod', + 'logoUri', + 'policyUri', + 'tosUri', + 'scope' + ] + } + ], + schema: `${BASE_PATH}assets/schema/dynamic-registration/oidc.json`, + + uiSchema: { + layout: { + groups: [ + { + size: 6, + classNames: '', + fields: [ + 'name', + 'resourceId', + 'redirectUris', + 'responseTypes', + 'grantTypes', + 'applicationType', + 'contacts', + 'subjectType', + 'jwks', + 'jwksUri', + 'tokenEndpointAuthMethod', + 'logoUri', + 'policyUri', + 'tosUri', + 'scope' + ] + }, + ] + }, + }, + + parser: (changes) => changes, + formatter: (changes) => changes, + display: (changes) => changes, +} + +export default DynamicRegistrationDefinition; + diff --git a/ui/src/app/dynamic-registration/view/DynamicRegistrationDetail.js b/ui/src/app/dynamic-registration/view/DynamicRegistrationDetail.js index 4a0d1d0ef..eb9646bbb 100644 --- a/ui/src/app/dynamic-registration/view/DynamicRegistrationDetail.js +++ b/ui/src/app/dynamic-registration/view/DynamicRegistrationDetail.js @@ -8,6 +8,12 @@ import Button from 'react-bootstrap/esm/Button'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faEdit, faHistory, faToggleOff, faToggleOn, faTrash } from '@fortawesome/free-solid-svg-icons'; import Badge from 'react-bootstrap/esm/Badge'; +import { Configuration } from '../../metadata/hoc/Configuration'; +import { MetadataConfiguration } from '../../metadata/component/MetadataConfiguration'; + +import { Schema } from '../../form/Schema'; + +import definition from '../hoc/DynamicConfigurationDefinition'; export function DynamicRegistrationDetail () { @@ -54,7 +60,7 @@ export function DynamicRegistrationDetail () {
{JSON.stringify(detail, null, 4)}
-