Package org.apache.struts2.interceptor

# Class AliasInterceptor

java.lang.Object
org.apache.struts2.interceptor.AbstractInterceptor
org.apache.struts2.interceptor.AliasInterceptor

All Implemented Interfaces:
  `Serializable`, `ConditionalInterceptor`, `Interceptor`

public class AliasInterceptor extends AbstractInterceptor
The aim of this Interceptor is to alias a named parameter to a different named parameter. By acting as the glue between actions sharing similar parameters (but with different names), it can help greatly with action chaining.

Action's alias expressions should be in the form of `#{ "name1" : "alias1", "name2" : "alias2" }`. This means that assuming an action (or something else in the stack) has a value for the expression named name1 and the action this interceptor is applied to has a setter named alias1, alias1 will be set with the value from name1.

Interceptor parameters:

- aliasesKey (optional) - the name of the action parameter to look for the alias map (by default this is aliases).

Extending the interceptor:

This interceptor does not have any known extension points.

Example code:

     <action name="someAction" class="com.examples.SomeAction">
         <!-- The value for the foo parameter will be applied as if it were named bar -->
         <param name="aliases">#{ 'foo' : 'bar' }</param>

         <interceptor-ref name="alias"/>
         <interceptor-ref name="basicStack"/>
         <result name="success">good_result.ftl</result>
     </action>

Author:
  Matthew Payne
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `aliasesKey`
  `protected boolean`
  `devMode`
  `protected LocalizedTextProvider`
  `localizedTextProvider`
  `protected ValueStackFactory`
  `valueStackFactory`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AliasInterceptor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `intercept(ActionInvocation invocation)`
  Override to handle interception
  `protected boolean`
  `isAccepted(String paramName)`
  `protected boolean`
  `isExcluded(String paramName)`
  `protected boolean`
  `isNotAcceptableExpression(String expression)`
  Checks if expression contains vulnerable code
  `void`
  `setAcceptedPatterns(AcceptedPatternsChecker acceptedPatterns)`
  `void`
  `setAcceptParamNames(String commaDelim)`
  Sets a comma-delimited list of regular expressions to match parameters that are allowed in the parameter map (aka whitelist).
  `void`
  `setAliasesKey(String aliasesKey)`
  Sets the name of the action parameter to look for the alias map.
  `void`
  `setDevMode(String mode)`
  `void`
  `setExcludedPatterns(ExcludedPatternsChecker excludedPatterns)`
  `void`
  `setExcludeParams(String commaDelim)`
  Sets a comma-delimited list of regular expressions to match parameters that should be removed from the parameter map.
  `void`
  `setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider)`
  `void`
  `setValueStackFactory(ValueStackFactory valueStackFactory)`

  ### Methods inherited from class org.apache.struts2.interceptor.AbstractInterceptor

  `destroy, init, setDisabled, shouldIntercept`

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

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

- ## Field Details

  - ### aliasesKey

    protected String aliasesKey

  - ### valueStackFactory

    protected ValueStackFactory valueStackFactory

  - ### localizedTextProvider

    protected LocalizedTextProvider localizedTextProvider

  - ### devMode

    protected boolean devMode

- ## Constructor Details

  - ### AliasInterceptor

    public AliasInterceptor()

- ## Method Details

  - ### setDevMode

    public void setDevMode(String mode)

  - ### setValueStackFactory

    public void setValueStackFactory(ValueStackFactory valueStackFactory)

  - ### setLocalizedTextProvider

    public void setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider)

  - ### setExcludedPatterns

    public void setExcludedPatterns(ExcludedPatternsChecker excludedPatterns)

  - ### setAcceptedPatterns

    public void setAcceptedPatterns(AcceptedPatternsChecker acceptedPatterns)

  - ### setAliasesKey

    public void setAliasesKey(String aliasesKey)

    Sets the name of the action parameter to look for the alias map.

    Default is `aliases`.

    Parameters:
      `aliasesKey` - the name of the action parameter

  - ### intercept

    public String intercept(ActionInvocation invocation) throws Exception
    Description copied from class: `AbstractInterceptor`
    Override to handle interception
    Specified by:
      `intercept` in interface `Interceptor`
    Specified by:
      `intercept` in class `AbstractInterceptor`
    Parameters:
      `invocation` - the action invocation
    Returns:
      the return code, either returned from `ActionInvocation.invoke()`, or from the interceptor itself.
    Throws:
      `Exception` - any system-level error, as defined in `Action.execute()`.

  - ### isAccepted

    protected boolean isAccepted(String paramName)

  - ### isExcluded

    protected boolean isExcluded(String paramName)

  - ### isNotAcceptableExpression

    protected boolean isNotAcceptableExpression(String expression)
    Checks if expression contains vulnerable code
    Parameters:
      `expression` - of interceptor
    Returns:
      true|false

  - ### setAcceptParamNames

    public void setAcceptParamNames(String commaDelim)
    Sets a comma-delimited list of regular expressions to match parameters that are allowed in the parameter map (aka whitelist).

    Don't change the default unless you know what you are doing in terms of security implications.

    Parameters:
      `commaDelim` - A comma-delimited list of regular expressions

  - ### setExcludeParams

    public void setExcludeParams(String commaDelim)
    Sets a comma-delimited list of regular expressions to match parameters that should be removed from the parameter map.
    Parameters:
      `commaDelim` - A comma-delimited list of regular expressions