code: @Override
  	public void serviceRequest(final Request request) {
  		// Get the expected session token
  		UIContext uic = UIContextHolder.getCurrent();
  		String expected = uic.getEnvironment().getSessionToken();
  
  		// Get the session token from the request
  		String got = request.getParameter(Environment.SESSION_TOKEN_VARIABLE);
  
  		// Check tokens match (Both null if new session)
  		// or processing a GET and no token
  		if (Util.equals(expected, got) || (got == null && "GET".equals(request.getMethod()))) {
  			// Process request
  			getBackingComponent().serviceRequest(request);
  		} else {  // Invalid token
  			String msg;
  			if (expected == null && got != null) {
  				msg = "Session for token [" + got + "] is no longer valid or timed out.";
  			} else {
  				msg = "Wrong session token detected for servlet request. Expected token [" + expected
  						+ "] but got token [" + got + "].";
  			}
  			LOG.error(msg);
  			String message = I18nUtilities.format(uic.getLocale(),
  					InternalMessages.DEFAULT_SESSION_TOKEN_ERROR);
  			throw new SystemException(message);
  		}
  
  	}
docs: Override to check whether the session token variable in the incoming request matches what we expect.
  
  @param request the request being serviced.