Package net.shibboleth.idp.cas.flow.impl

# Class PublishProtocolMessageAction<RequestType,ResponseType>

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.cas.flow.impl.AbstractCASProtocolAction<RequestType,ResponseType>
net.shibboleth.idp.cas.flow.impl.PublishProtocolMessageAction<RequestType,ResponseType>

Type Parameters:
  `RequestType` - request
  `ResponseType` - response

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

public class PublishProtocolMessageAction<RequestType,ResponseType> extends AbstractCASProtocolAction<RequestType,ResponseType>
Action to publish the CAS protocol request or response messages, i.e. `ProtocolContext.getResponse()`, in Spring Webflow flow scope to make available in views. The key name is the protocol object simple class name converted to variable case, e.g. `TicketValidationResponse` is accessible as `flowScope.ticketValidationResponse`.

## Field Summary

Fields
Modifier and Type
Field
Description
`private boolean`
`requestFlag`
Request/response flag.

## Constructor Summary

Constructors
Constructor
Description
`PublishProtocolMessageAction(boolean isRequest)`
Creates a new instance to publish request or response messages to Webflow request scope.

## Method Summary

Modifier and Type
Method
Description
`protected Event`
`doExecute(RequestContext springRequestContext, ProfileRequestContext profileRequestContext)`
Spring-aware actions can override this method to fully control the execution of an Action by the Web Flow engine.

### Methods inherited from class net.shibboleth.idp.cas.flow.impl.AbstractCASProtocolAction

`getCASRequest, getCASResponse, getCASService, getCASTicket, getProtocolContext, setCASRequest, setCASResponse, setCASService, setCASTicket`

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

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

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

`doPreExecute, getActivationCondition, setActivationCondition`

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

`doExecute, 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

### requestFlag

private boolean requestFlag
Request/response flag.

## Constructor Details

### PublishProtocolMessageAction

public PublishProtocolMessageAction(boolean isRequest)
Creates a new instance to publish request or response messages to Webflow request scope.

Parameters:
  `isRequest` - True for request messages, false for response messages.

## Method Details

### doExecute

@Nullable protected Event doExecute(@Nonnull RequestContext springRequestContext, @Nonnull ProfileRequestContext profileRequestContext)
Spring-aware actions can override this method to fully control the execution of an Action by the Web Flow engine.

Alternatively they may override `AbstractProfileAction.doExecute(ProfileRequestContext)` and access Spring information via a `SpringRequestContext` attached to the profile request context.

The default implementation attaches the Spring Web Flow request context to the profile request context tree to "narrow" the execution signature to the basic OpenSAML `ProfileAction` interface. After execution, an `EventContext` is sought, and used to return a result back to the Web Flow engine. If no context exists, a "proceed" event is signaled.

Overrides:
  `doExecute` in class `AbstractProfileAction`
Parameters:
  `springRequestContext` - the Spring request context
  `profileRequestContext` - a profile request context
Returns:
  a Web Flow event produced by the action