Search in sources :

Example 6 with RegisteredServiceAttributeReleasePolicyContext

use of org.apereo.cas.services.RegisteredServiceAttributeReleasePolicyContext in project cas by apereo.

the class MetadataRequestedAttributesAttributeReleasePolicy method fetchRequestedAttributes.

private Map<String, List<Object>> fetchRequestedAttributes(final Map<String, List<Object>> attributes, final RegisteredServiceAttributeReleasePolicyContext context, final SamlRegisteredServiceServiceProviderMetadataFacade facade) {
    val releaseAttributes = new HashMap<String, List<Object>>();
    Optional.ofNullable(facade.getSsoDescriptor()).ifPresent(sso -> sso.getAttributeConsumingServices().forEach(svc -> svc.getRequestedAttributes().stream().filter(attr -> {
        val name = this.useFriendlyName ? attr.getFriendlyName() : attr.getName();
        LOGGER.debug("Checking for requested attribute [{}] in metadata for [{}]", name, context.getRegisteredService().getName());
        return attributes.containsKey(name);
    }).forEach(attr -> {
        val name = this.useFriendlyName ? attr.getFriendlyName() : attr.getName();
        LOGGER.debug("Found requested attribute [{}] in metadata for [{}]", name, context.getRegisteredService().getName());
        releaseAttributes.put(name, attributes.get(name));
    })));
    return releaseAttributes;
}
Also used : lombok.val(lombok.val) Setter(lombok.Setter) RegisteredServiceAttributeReleasePolicyContext(org.apereo.cas.services.RegisteredServiceAttributeReleasePolicyContext) Getter(lombok.Getter) SamlRegisteredServiceCachingMetadataResolver(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCachingMetadataResolver) lombok.val(lombok.val) HashMap(java.util.HashMap) EqualsAndHashCode(lombok.EqualsAndHashCode) ApplicationContext(org.springframework.context.ApplicationContext) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) Map(java.util.Map) ToString(lombok.ToString) SamlRegisteredServiceServiceProviderMetadataFacade(org.apereo.cas.support.saml.services.idp.metadata.SamlRegisteredServiceServiceProviderMetadataFacade) Optional(java.util.Optional) AllArgsConstructor(lombok.AllArgsConstructor) EntityDescriptor(org.opensaml.saml.saml2.metadata.EntityDescriptor) NoArgsConstructor(lombok.NoArgsConstructor) HashMap(java.util.HashMap)

Example 7 with RegisteredServiceAttributeReleasePolicyContext

use of org.apereo.cas.services.RegisteredServiceAttributeReleasePolicyContext in project cas by apereo.

the class AuthnRequestRequestedAttributesAttributeReleasePolicy method determineRequestedAttributeDefinitions.

@Override
protected List<String> determineRequestedAttributeDefinitions(final RegisteredServiceAttributeReleasePolicyContext context) {
    val definitions = new ArrayList<String>();
    val applicationContext = ApplicationContextProvider.getApplicationContext();
    getSamlAuthnRequest(applicationContext).ifPresent(authnRequest -> {
        if (authnRequest.getExtensions() != null) {
            authnRequest.getExtensions().getUnknownXMLObjects().stream().filter(object -> object instanceof RequestedAttribute).map(object -> (RequestedAttribute) object).forEach(attr -> {
                val name = this.useFriendlyName ? attr.getFriendlyName() : attr.getName();
                LOGGER.debug("Found requested attribute [{}] in metadata for [{}]", name, context.getRegisteredService().getName());
                definitions.add(name);
            });
        }
    });
    return definitions;
}
Also used : lombok.val(lombok.val) Setter(lombok.Setter) RegisteredServiceAttributeReleasePolicyContext(org.apereo.cas.services.RegisteredServiceAttributeReleasePolicyContext) Getter(lombok.Getter) SamlRegisteredServiceCachingMetadataResolver(org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCachingMetadataResolver) lombok.val(lombok.val) HashMap(java.util.HashMap) EqualsAndHashCode(lombok.EqualsAndHashCode) ApplicationContext(org.springframework.context.ApplicationContext) ArrayList(java.util.ArrayList) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) Map(java.util.Map) ToString(lombok.ToString) SamlRegisteredServiceServiceProviderMetadataFacade(org.apereo.cas.support.saml.services.idp.metadata.SamlRegisteredServiceServiceProviderMetadataFacade) AllArgsConstructor(lombok.AllArgsConstructor) EntityDescriptor(org.opensaml.saml.saml2.metadata.EntityDescriptor) ApplicationContextProvider(org.apereo.cas.util.spring.ApplicationContextProvider) RequestedAttribute(org.opensaml.saml.saml2.metadata.RequestedAttribute) NoArgsConstructor(lombok.NoArgsConstructor) RequestedAttribute(org.opensaml.saml.saml2.metadata.RequestedAttribute) ArrayList(java.util.ArrayList)

Aggregations

List (java.util.List)7 Map (java.util.Map)7 EqualsAndHashCode (lombok.EqualsAndHashCode)7 Getter (lombok.Getter)7 Setter (lombok.Setter)7 lombok.val (lombok.val)7 RegisteredServiceAttributeReleasePolicyContext (org.apereo.cas.services.RegisteredServiceAttributeReleasePolicyContext)7 ArrayList (java.util.ArrayList)6 HashMap (java.util.HashMap)6 ToString (lombok.ToString)6 Slf4j (lombok.extern.slf4j.Slf4j)6 SamlRegisteredServiceServiceProviderMetadataFacade (org.apereo.cas.support.saml.services.idp.metadata.SamlRegisteredServiceServiceProviderMetadataFacade)5 SamlRegisteredServiceCachingMetadataResolver (org.apereo.cas.support.saml.services.idp.metadata.cache.SamlRegisteredServiceCachingMetadataResolver)5 EntityDescriptor (org.opensaml.saml.saml2.metadata.EntityDescriptor)5 ApplicationContext (org.springframework.context.ApplicationContext)5 AllArgsConstructor (lombok.AllArgsConstructor)4 NoArgsConstructor (lombok.NoArgsConstructor)4 ApplicationContextProvider (org.apereo.cas.util.spring.ApplicationContextProvider)4 Optional (java.util.Optional)3 Maps (com.google.common.collect.Maps)2