xmltooling
3.3.0
|
Interface to HTTP response. More...
#include <xmltooling/io/HTTPResponse.h>
Public Types | |
enum | samesite_t { SAMESITE_ABSENT = 0, SAMESITE_NONE = 1, SAMESITE_LAX = 2, SAMESITE_STRICT = 3 } |
Cookie SameSite values. More... | |
enum | status_t { XMLTOOLING_HTTP_STATUS_OK = 200, XMLTOOLING_HTTP_STATUS_MOVED = 302, XMLTOOLING_HTTP_STATUS_NOTMODIFIED = 304, XMLTOOLING_HTTP_STATUS_BADREQUEST = 400, XMLTOOLING_HTTP_STATUS_UNAUTHORIZED = 401, XMLTOOLING_HTTP_STATUS_FORBIDDEN = 403, XMLTOOLING_HTTP_STATUS_NOTFOUND = 404, XMLTOOLING_HTTP_STATUS_ERROR = 500 } |
Some common HTTP status codes. More... | |
Public Member Functions | |
void | setContentType (const char *type) |
Sets or clears the MIME type of the response. More... | |
virtual void | setResponseHeader (const char *name, const char *value, bool replace=false) |
Sets, adds, or clears a response header. More... | |
virtual void | setCookie (const char *name, const char *value, time_t expires, samesite_t sameSiteValue, bool sameSiteFallback) |
Sets or unsets a client cookie. More... | |
virtual void | setCookie (const char *name, const char *value, time_t expires=0, samesite_t sameSiteValue=SAMESITE_ABSENT) |
Sets or unsets a client cookie. More... | |
virtual long | sendRedirect (const char *url) |
Redirect the client to the specified URL and complete the response. More... | |
long | sendError (std::istream &inputStream) |
Sends an "error" response to the client along with a transport-specific error indication. More... | |
long | sendResponse (std::istream &inputStream) |
Sends a completed response to the client along with a transport-specific "OK" indication. More... | |
virtual long | sendResponse (std::istream &inputStream)=0 |
Sends a completed response to the client along with a transport-specific "OK" indication. More... | |
virtual long | sendResponse (std::istream &inputStream, long status)=0 |
Sends a completed response to the client. More... | |
![]() | |
virtual long | sendResponse (std::istream &inputStream, long status)=0 |
Sends a completed response to the client. More... | |
Static Public Member Functions | |
static std::vector< std::string > & | getAllowedSchemes () |
Returns a modifiable array of schemes to permit in sanitized URLs. More... | |
static void | sanitizeURL (const char *url) |
Manually check for unsafe URLs vulnerable to injection attacks. More... | |
Interface to HTTP response.
To supply information to the surrounding web server environment, a shim must be supplied in the form of this interface to adapt the library to different proprietary server APIs.
This interface need not be threadsafe.
Cookie SameSite values.
Some common HTTP status codes.
|
static |
Returns a modifiable array of schemes to permit in sanitized URLs.
Updates to this array must be externally synchronized with any use of this class or its subclasses.
|
static |
Manually check for unsafe URLs vulnerable to injection attacks.
url | location to check |
|
virtual |
Sends an "error" response to the client along with a transport-specific error indication.
inputStream | reference to source of response data |
Implements xmltooling::GenericResponse.
|
virtual |
Redirect the client to the specified URL and complete the response.
Any headers previously set will be sent ahead of the redirect.
The URL will be validated with the sanitizeURL method below.
url | location to redirect client |
virtual long xmltooling::GenericResponse::sendResponse |
Sends a completed response to the client.
inputStream | reference to source of response data |
status | transport-specific status to return |
virtual long xmltooling::GenericResponse::sendResponse |
Sends a completed response to the client along with a transport-specific "OK" indication.
Used for "normal" responses.
inputStream | reference to source of response data |
|
virtual |
Sends a completed response to the client along with a transport-specific "OK" indication.
Used for "normal" responses.
inputStream | reference to source of response data |
Implements xmltooling::GenericResponse.
|
virtual |
Sets or clears the MIME type of the response.
type | the MIME type, or nullptr to clear |
Implements xmltooling::GenericResponse.
|
virtual |
Sets or unsets a client cookie.
The boolean flag enables the workaround for older clients with broken SameSite support by setting a second cookie with a decorated name that would not carry the SameSite flag.
name | cookie name |
value | value to set, or nullptr to clear |
expires | optional expiration time for the cookie, 0 means session |
sameSiteValue | the SameSite value to apply to the cookie |
sameSiteFallback | enables setting of a fallback cookie |
|
virtual |
Sets or unsets a client cookie.
Now defaults to calling the new version with a false flag.
name | cookie name |
value | value to set, or nullptr to clear |
expires | optional expiration time for the cookie, 0 means session |
sameSiteValue | the SameSite value to apply to the cookie |
|
virtual |
Sets, adds, or clears a response header.
name | header name |
value | value to set, or nullptr to clear |
replace | true iff this should replace existing header(s) |