Search in sources :

Example 1 with IndexAttachment

use of com.amazonaws.services.clouddirectory.model.IndexAttachment in project cas by apereo.

the class DefaultCloudDirectoryRepository method getUserInfoFromIndexResult.

private Map<String, Object> getUserInfoFromIndexResult(final ListIndexResult indexResult) {
    final IndexAttachment attachment = indexResult.getIndexAttachments().stream().findFirst().orElse(null);
    if (attachment != null) {
        final String identifier = attachment.getObjectIdentifier();
        final ListObjectAttributesRequest listObjectAttributesRequest = CloudDirectoryUtils.getListObjectAttributesRequest(cloudDirectoryProperties.getDirectoryArn(), identifier);
        final ListObjectAttributesResult attributesResult = amazonCloudDirectory.listObjectAttributes(listObjectAttributesRequest);
        if (attributesResult != null && attributesResult.getAttributes() != null) {
            return attributesResult.getAttributes().stream().map(a -> {
                Object value = null;
                final TypedAttributeValue attributeValue = a.getValue();
                LOGGER.debug("Examining attribute [{}]", a);
                if (StringUtils.isNotBlank(attributeValue.getNumberValue())) {
                    value = attributeValue.getNumberValue();
                } else if (attributeValue.getDatetimeValue() != null) {
                    value = DateTimeUtils.zonedDateTimeOf(attributeValue.getDatetimeValue()).toString();
                } else if (attributeValue.getBooleanValue() != null) {
                    value = attributeValue.getBooleanValue().toString();
                } else if (attributeValue.getBinaryValue() != null) {
                    value = new String(attributeValue.getBinaryValue().array(), StandardCharsets.UTF_8);
                } else if (StringUtils.isNotBlank(attributeValue.getStringValue())) {
                    value = attributeValue.getStringValue();
                }
                return Pair.of(a.getKey().getName(), value);
            }).filter(p -> p.getValue() != null).collect(Collectors.toMap(Pair::getKey, Pair::getValue));
        }
    }
    return null;
}
Also used : ListObjectAttributesResult(com.amazonaws.services.clouddirectory.model.ListObjectAttributesResult) ListIndexRequest(com.amazonaws.services.clouddirectory.model.ListIndexRequest) DateTimeUtils(org.apereo.cas.util.DateTimeUtils) ObjectReference(com.amazonaws.services.clouddirectory.model.ObjectReference) ListObjectAttributesRequest(com.amazonaws.services.clouddirectory.model.ListObjectAttributesRequest) TypedAttributeValue(com.amazonaws.services.clouddirectory.model.TypedAttributeValue) StringUtils(org.apache.commons.lang3.StringUtils) Collectors(java.util.stream.Collectors) ListIndexResult(com.amazonaws.services.clouddirectory.model.ListIndexResult) StandardCharsets(java.nio.charset.StandardCharsets) Slf4j(lombok.extern.slf4j.Slf4j) Pair(org.apache.commons.lang3.tuple.Pair) IndexAttachment(com.amazonaws.services.clouddirectory.model.IndexAttachment) CloudDirectoryProperties(org.apereo.cas.configuration.model.support.clouddirectory.CloudDirectoryProperties) Map(java.util.Map) AmazonCloudDirectory(com.amazonaws.services.clouddirectory.AmazonCloudDirectory) AllArgsConstructor(lombok.AllArgsConstructor) ListObjectAttributesResult(com.amazonaws.services.clouddirectory.model.ListObjectAttributesResult) ListObjectAttributesRequest(com.amazonaws.services.clouddirectory.model.ListObjectAttributesRequest) TypedAttributeValue(com.amazonaws.services.clouddirectory.model.TypedAttributeValue) IndexAttachment(com.amazonaws.services.clouddirectory.model.IndexAttachment)

Aggregations

AmazonCloudDirectory (com.amazonaws.services.clouddirectory.AmazonCloudDirectory)1 IndexAttachment (com.amazonaws.services.clouddirectory.model.IndexAttachment)1 ListIndexRequest (com.amazonaws.services.clouddirectory.model.ListIndexRequest)1 ListIndexResult (com.amazonaws.services.clouddirectory.model.ListIndexResult)1 ListObjectAttributesRequest (com.amazonaws.services.clouddirectory.model.ListObjectAttributesRequest)1 ListObjectAttributesResult (com.amazonaws.services.clouddirectory.model.ListObjectAttributesResult)1 ObjectReference (com.amazonaws.services.clouddirectory.model.ObjectReference)1 TypedAttributeValue (com.amazonaws.services.clouddirectory.model.TypedAttributeValue)1 StandardCharsets (java.nio.charset.StandardCharsets)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1 AllArgsConstructor (lombok.AllArgsConstructor)1 Slf4j (lombok.extern.slf4j.Slf4j)1 StringUtils (org.apache.commons.lang3.StringUtils)1 Pair (org.apache.commons.lang3.tuple.Pair)1 CloudDirectoryProperties (org.apereo.cas.configuration.model.support.clouddirectory.CloudDirectoryProperties)1 DateTimeUtils (org.apereo.cas.util.DateTimeUtils)1