Package net.shibboleth.idp.consent.flow.ar.impl

# Class ReleaseAttributes

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.profile.interceptor.AbstractProfileInterceptorAction
net.shibboleth.idp.consent.flow.impl.AbstractConsentAction
net.shibboleth.idp.consent.flow.ar.impl.AbstractAttributeReleaseAction
net.shibboleth.idp.consent.flow.ar.impl.ReleaseAttributes

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `ProfileAction`, `Aware`, `MessageSource`, `MessageSourceAware`, `Action`

public class ReleaseAttributes extends AbstractAttributeReleaseAction
Attribute consent action which constrains the attributes released to those consented to. For every consentable attribute in the attribute release context, this action will release the attribute if consent for the attribute has been approved. Attributes in the attribute context which are not consentable attributes in the attribute release context will be released. In other words, this action releases attributes for which consent has been approved as well as attributes which are excluded from consent. Consent is obtained from the consent context. If there are no current consents then the previous consents are used to determine the attributes to be released. The current consents will be present if user input has been obtained during the attribute release flow. The previous consents will be used when there is no user interaction, for example if there are no new attributes to consent to.

Event:
  `EventIds.PROCEED_EVENT_ID`
Postcondition:
  See above.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.

## Constructor Summary

Constructors
Constructor
Description
`ReleaseAttributes()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext, ProfileInterceptorContext interceptorContext)`
Performs this profile interceptor action.

### Methods inherited from class net.shibboleth.idp.consent.flow.ar.impl.AbstractAttributeReleaseAction

`doPreExecute, getAttributeContext, getAttributeReleaseContext, getAttributeReleaseFlowDescriptor, setAttributeContextLookupStrategy, setAttributeReleaseContextLookupStrategy`

### Methods inherited from class net.shibboleth.idp.consent.flow.impl.AbstractConsentAction

`getConsentContext, getConsentFlowDescriptor, setConsentContextLookupStrategy`

### Methods inherited from class net.shibboleth.idp.profile.interceptor.AbstractProfileInterceptorAction

`doExecute, doPreExecute, setLookupStrategy`

### Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction

`doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy`

### Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

`getActivationCondition, setActivationCondition`

### Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

`doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

## Field Details

### log

@Nonnull private final org.slf4j.Logger log
Class logger.

## Constructor Details

### ReleaseAttributes

public ReleaseAttributes()

## Method Details

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull ProfileInterceptorContext interceptorContext)
Performs this profile interceptor action. Default implementation does nothing.

Overrides:
  `doExecute` in class `AbstractProfileInterceptorAction`
Parameters:
  `profileRequestContext` - the current profile request context
  `interceptorContext` - the current profile interceptor context