Class IsUserInRolePipe

All Implemented Interfaces:
HasTransactionAttribute, IConfigurable, IConfigurationAware, IForwardTarget, INamedObject, IPipe, IScopeProvider, IWithParameters, EventThrowing, HasStatistics, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

@Forward(name="notInRole",description="user does not have the required role") @Forward(name="*",description="the first matched role which the user has") @Category(ADVANCED) @EnterpriseIntegrationPattern(ROUTER) public class IsUserInRolePipe extends FixedForwardPipe
Pipe that checks if the calling user has a specified role. Uses the PipeLineSessions methods.

If the role is not specified by the role attribute, the input of the pipe is used as role. N.B. The role itself must be specified by hand in the deployment descriptors web.xml and application.xml.

Since:
4.4.3
Author:
Gerrit van Brakel
  • Field Details

    • notInRoleForward

      protected PipeForward notInRoleForward
  • Constructor Details

    • IsUserInRolePipe

      public IsUserInRolePipe()
  • Method Details

    • configure

      public void configure() throws ConfigurationException
      Description copied from class: FixedForwardPipe
      checks for correct configuration of forward
      Specified by:
      configure in interface IConfigurable
      Specified by:
      configure in interface IPipe
      Overrides:
      configure in class FixedForwardPipe
      Throws:
      ConfigurationException
    • getFirstMatchingUserRole

      protected String getFirstMatchingUserRole(PipeLineSession session, List<String> roles)
    • getRolesToCheck

      protected List<String> getRolesToCheck(Message message) throws PipeRunException
      Throws:
      PipeRunException
    • doPipe

      public PipeRunResult doPipe(Message message, PipeLineSession session) throws PipeRunException
      Description copied from interface: IPipe
      This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for the FixedResultPipe, the Pipe can schedule the input to be closed at session exit, by calling Message.closeOnCloseOf(PipeLineSession, String) This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.
      Throws:
      PipeRunException
    • getRole

      public String getRole()
    • setRole

      public void setRole(String string)
      the j2ee role(s) to check, if the user in multiple roles, the first specified role will be matched.
    • setNotInRoleForwardName

      @Deprecated(forRemoval=true, since="7.7.0") public void setNotInRoleForwardName(String string)
      Deprecated, for removal: This API element is subject to removal in a future version.
      name of forward returned if user is not allowed to assume the specified role
      Default value
      notInRole
    • getNotInRoleForwardName

      public String getNotInRoleForwardName()