Class RequestHandler
java.lang.Object
com.mendix.externalinterface.connector.RequestHandler
- All Implemented Interfaces:
IRequestHandler
Implementation of
IRequestHandler that provides some access to the Mendix Runtime. Most importantly, it lets you access session
information of requests.-
Field Summary
FieldsFields inherited from interface com.mendix.externalinterface.connector.IRequestHandler
APPLICATION_OCTET_STREAM_TYPE, CSRF_TOKEN_HEADER, CSRF_TOKEN_PARAMETER, EXPIRES -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildUserInfo(IContext context) voiddoProcessRequest(IMxRuntimeRequest request, IMxRuntimeResponse response, String path) Method that is called when a new request is to be processed.protected booleanWhether this handler opts in to automatic OPTIONS handling.protected StringformatDate(Date date) protected longgetExpiresTimeStamp(int addYears) protected Stringprotected ISessiongetSessionFromRequest(IMxRuntimeRequest request) Get the session using the cookie.protected ISessiongetSessionFromRequest(IMxRuntimeRequest request, boolean performCSRFCheck) Get the session using the cookie.protected booleanReturns whether the specified session has expired.protected Dateprotected abstract voidprocessRequest(IMxRuntimeRequest request, IMxRuntimeResponse response, String path) Method that is called when a new request is to be processed.
-
Field Details
-
logger
-
-
Constructor Details
-
RequestHandler
public RequestHandler()Creates a new request handler.
-
-
Method Details
-
doProcessRequest
public void doProcessRequest(IMxRuntimeRequest request, IMxRuntimeResponse response, String path) throws Exception Description copied from interface:IRequestHandlerMethod that is called when a new request is to be processed.- Specified by:
doProcessRequestin interfaceIRequestHandler- Parameters:
request- the request to handlerresponse- the response to update for the requestpath- the request path after the handler type (e.g. for "/xas/commit" the handler type is "xas/" and the path is "commit")- Throws:
Exception
-
processRequest
protected abstract void processRequest(IMxRuntimeRequest request, IMxRuntimeResponse response, String path) throws Exception Method that is called when a new request is to be processed. Implement this method instead of overridingdoProcessRequest(com.mendix.m2ee.api.IMxRuntimeRequest, com.mendix.m2ee.api.IMxRuntimeResponse, java.lang.String).- Parameters:
request- the request to handlerresponse- the response to update for the requestpath- the request path- Throws:
Exception
-
enableOptionsResponse
protected boolean enableOptionsResponse()Whether this handler opts in to automatic OPTIONS handling. When this returns true and the runtime enables it, OPTIONS requests are short-circuited with 200 OK without invokingprocessRequest(com.mendix.m2ee.api.IMxRuntimeRequest, com.mendix.m2ee.api.IMxRuntimeResponse, java.lang.String).- Returns:
- true to allow direct OPTIONS responses for this handler
-
getSessionFromRequest
Get the session using the cookie. No csrf check will be performed.- Parameters:
request- the request from which to get the session- Returns:
- the session
- Throws:
CoreException- if the session cannot be retrieved
-
getSessionFromRequest
protected ISession getSessionFromRequest(IMxRuntimeRequest request, boolean performCSRFCheck) throws CoreException Get the session using the cookie.- Parameters:
request- the request from which to get the sessionperformCSRFCheck- whether a csrf check will be performed using the request headers- Returns:
- the session
- Throws:
CoreException- if the session cannot be retrieved
-
isSessionKilledByNewLogin
Returns whether the specified session has expired.- Parameters:
request- the request from which to get the session- Returns:
- true if the session expired, false otherwise
-
buildUserInfo
-
getExpiresTimeStamp
protected long getExpiresTimeStamp(int addYears) -
formatDate
-
parseDate
- Throws:
ParseException
-
getSessionCookieName
-