Interface RequestDataValueProcessor


public interface RequestDataValueProcessor
A contract for inspecting and potentially modifying request data values such as URL query parameters or form field values before they are rendered by a view or before a redirect.

Implementations may use this contract for example as part of a solution to provide data integrity, confidentiality, protection against cross-site request forgery (CSRF), and others or for other tasks such as automatically adding a hidden field to all forms and URLs.

View technologies that support this contract can obtain an instance to delegate to via RequestContext.getRequestDataValueProcessor().

Since:
3.1
Author:
Rossen Stoyanchev
  • Method Details

    • processAction

      String processAction(HttpServletRequest request, String action, String httpMethod)
      Invoked when a new form action is rendered.
      Parameters:
      request - the current request
      action - the form action
      httpMethod - the form HTTP method
      Returns:
      the action to use, possibly modified
    • processFormFieldValue

      String processFormFieldValue(HttpServletRequest request, @Nullable String name, String value, String type)
      Invoked when a form field value is rendered.
      Parameters:
      request - the current request
      name - the form field name (if any)
      value - the form field value
      type - the form field type ("text", "hidden", etc.)
      Returns:
      the form field value to use, possibly modified
    • getExtraHiddenFields

      @Nullable Map<String,String> getExtraHiddenFields(HttpServletRequest request)
      Invoked after all form fields have been rendered.
      Parameters:
      request - the current request
      Returns:
      additional hidden form fields to be added, or null if none
    • processUrl

      String processUrl(HttpServletRequest request, String url)
      Invoked when a URL is about to be rendered or redirected to.
      Parameters:
      request - the current request
      url - the URL value
      Returns:
      the URL to use, possibly modified