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:
- 5.0
- Author:
- Rossen Stoyanchev
-
Method Summary
Modifier and TypeMethodDescriptiongetExtraHiddenFields(ServerWebExchange exchange) Invoked after all form fields have been rendered.processAction(ServerWebExchange exchange, String action, String httpMethod) Invoked when a new form action is rendered.processFormFieldValue(ServerWebExchange exchange, String name, String value, String type) Invoked when a form field value is rendered.processUrl(ServerWebExchange exchange, String url) Invoked when a URL is about to be rendered or redirected to.
-
Method Details
-
processAction
Invoked when a new form action is rendered.- Parameters:
exchange- the current exchangeaction- the form actionhttpMethod- the form HTTP method- Returns:
- the action to use, possibly modified
-
processFormFieldValue
Invoked when a form field value is rendered.- Parameters:
exchange- the current exchangename- the form field namevalue- the form field valuetype- the form field type ("text", "hidden", etc.)- Returns:
- the form field value to use, possibly modified
-
getExtraHiddenFields
Invoked after all form fields have been rendered.- Parameters:
exchange- the current exchange- Returns:
- additional hidden form fields to be added, or
null
-
processUrl
Invoked when a URL is about to be rendered or redirected to.- Parameters:
exchange- the current exchangeurl- the URL value- Returns:
- the URL to use, possibly modified
-