Skip to content

Commit

Permalink
Merge branch 'master' into feature/SHIBUI-704
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Nov 15, 2018
2 parents bf81bb2 + 5dab7dd commit 74a6f28
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,21 @@ class RelyingPartyOverridesJsonSchemaValidatingControllerAdvice extends RequestB
}

@Override
Object afterBodyRead(Object body, HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) {
def relyingPartyOverrides = EntityDescriptorRepresentation.cast(body).relyingPartyOverrides
def relyingPartyOverridesJson = Json.make([relyingPartyOverrides: relyingPartyOverrides])
HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter,
Type targetType, Class<? extends HttpMessageConverter<?>> converterType)
throws IOException {
def bytes = inputMessage.body.bytes
def schema = Json.schema(this.jsonSchemaLocation.uri)
def validationResult = schema.validate(relyingPartyOverridesJson)

def stream = new ByteArrayInputStream(bytes)
def validationResult = schema.validate(Json.read(stream.getText()))
if (!validationResult.at('ok')) {
throw new JsonSchemaValidationFailedException(validationResult.at('errors').asList())
}
body
return [
getBody: { new ByteArrayInputStream(bytes) },
getHeaders: { inputMessage.headers }
] as HttpInputMessage
}

@ExceptionHandler(JsonSchemaValidationFailedException)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
public class LocalDynamicMetadataResolver extends MetadataResolver {
public LocalDynamicMetadataResolver() {
type = "LocalDynamicMetadataResolver";
setDoInitialization(false);
}

private String sourceDirectory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,14 +105,21 @@ public List<Attribute> getAttributeListFromRelyingPartyOverridesRepresentation(M
switch (ModelRepresentationConversions.AttributeTypes.valueOf(overrideProperty.getDisplayType().toUpperCase())) {
case BOOLEAN:
if (overrideProperty.getPersistType() != null &&
!overrideProperty.getPersistType().equalsIgnoreCase("boolean")) {
!overrideProperty.getPersistType().equalsIgnoreCase("boolean") &&
((entry.getValue() instanceof Boolean && (Boolean)entry.getValue()) || Boolean.valueOf((String)entry.getValue()))) {
list.add(attributeUtility.createAttributeWithStringValues(overrideProperty.getAttributeName(),
overrideProperty.getAttributeFriendlyName(),
(String) entry.getValue()));
overrideProperty.getPersistValue()));
} else {
list.add(attributeUtility.createAttributeWithBooleanValue(overrideProperty.getAttributeName(),
overrideProperty.getAttributeFriendlyName(),
(Boolean) entry.getValue()));
if (entry.getValue() instanceof String) {
list.add(attributeUtility.createAttributeWithBooleanValue(overrideProperty.getAttributeName(),
overrideProperty.getAttributeFriendlyName(),
Boolean.valueOf((String) entry.getValue())));
} else {
list.add(attributeUtility.createAttributeWithBooleanValue(overrideProperty.getAttributeName(),
overrideProperty.getAttributeFriendlyName(),
(Boolean) entry.getValue()));
}
}
break;
case INTEGER:
Expand Down
2 changes: 1 addition & 1 deletion backend/src/main/resources/metadata-sources-ui-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@
]
},
"nameIdFormats": {
"$ref": "#/definitions/NameIdFormatList"
"$ref": "#/definitions/nameIdFormats"
}
}
},
Expand Down
3 changes: 2 additions & 1 deletion ui/src/app/metadata/domain/service/provider.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ export class MetadataProviderService {
) {}
query(): Observable<MetadataProvider[]> {
return this.http.get<MetadataProvider[]>(`${this.base}${this.endpoint}`).pipe(
map(providers => providers.filter(p => p['@type'] !== 'BaseMetadataResolver'))
map(providers => providers.filter(p => p['@type'] !== 'BaseMetadataResolver')),
map(providers => providers.map(p => ({ ...p, id: p.resourceId })))
);
}

Expand Down
29 changes: 29 additions & 0 deletions ui/src/app/metadata/provider/model/local-dynamic.provider.form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,38 @@ export const LocalDynamicMetadataProviderEditor: Wizard<LocalDynamicMetadataProv
initialValues: [],
schema: '/api/ui/MetadataResolver/LocalDynamicMetadataResolver',
fields: [
'name',
'@type',
'enabled',
'xmlId',
'sourceDirectory',
],
override: {
'@type': {
type: 'string',
readOnly: true,
widget: 'string',
oneOf: [{ enum: ['LocalDynamicMetadataResolver'], description: 'value.local-dynamic-metadata-provider' }]
}
},
fieldsets: [
{
type: 'section',
class: ['mb-3'],
fields: [
'name',
'@type',
'enabled'
]
},
{
type: 'group-lg',
class: ['col-12'],
fields: [
'xmlId',
'sourceDirectory',
]
}
]
},
{
Expand Down

0 comments on commit 74a6f28

Please sign in to comment.