Class JiraActionFactory

java.lang.Object
webwork.action.factory.ActionFactory
com.atlassian.jira.config.webwork.JiraActionFactory

public class JiraActionFactory extends webwork.action.factory.ActionFactory
JiraActionFactory replaces the webwork1 DefaultActionFactory and avoids is unsafe web parameter setting as described in JRA-15664.

This is class is designed to load actions that are "safe by default".

The root ActionFactory it returns tries the regular, global application class loaders just like the JavaActionFactory in webwork1 and caches any matches it finds, but will also try the plugins class loader when it is unable to find an action class in the global class loaders.

Introduced / changed as part of JRA-15664

Since:
v3.13
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    JiraActionFactory(webwork.action.factory.ActionFactory factory, com.atlassian.jira.config.webwork.JiraPluginActionFactory rootActionFactory)
    Deprecated.
    since 5.0.7
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    If the set of loaded plugins (and hence loaded actions) has changed then this method must be called to flush the cache of action names to action classes.
    webwork.action.Action
    getActionImpl(String actionName)
    This method is invoked by webwork1 to load an Action for a given action name.

    Methods inherited from class webwork.action.factory.ActionFactory

    getAction, getActionFactory, setActionFactory

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JiraActionFactory

      public JiraActionFactory()
    • JiraActionFactory

      @Deprecated public JiraActionFactory(webwork.action.factory.ActionFactory factory, com.atlassian.jira.config.webwork.JiraPluginActionFactory rootActionFactory)
      Deprecated.
      since 5.0.7
      Added to allow the JiraActionFactory.NonWebActionFactory to set the action instantiation chain.
      Parameters:
      factory - The factory chain that will handle instantiating the passed in action names.
      rootActionFactory - The root of the action factory chain, responsible for actual creation of Action instances.
  • Method Details

    • getActionImpl

      public webwork.action.Action getActionImpl(String actionName) throws Exception
      This method is invoked by webwork1 to load an Action for a given action name. The parameters for that action are also set into the action before it is returned
      Specified by:
      getActionImpl in class webwork.action.factory.ActionFactory
      Parameters:
      actionName - the name of the action to load
      Throws:
      Exception - because that is how webwork1 has declared its exception structure
      webwork.action.ResultException - if the parameters cannot be set into the action successfully AND the action is not declared IllegalArgumentAware
    • flushCaches

      public void flushCaches()
      If the set of loaded plugins (and hence loaded actions) has changed then this method must be called to flush the cache of action names to action classes.
      Overrides:
      flushCaches in class webwork.action.factory.ActionFactory