def store(self, eventId, queueId, fixedCookieValidityMinutes, cookieDomain, redirectType, secretKey): cookieKey = UserInQueueStateCookieRepository.getCookieKey(eventId) cookieValue = UserInQueueStateCookieRepository.__createCookieValue( eventId, queueId, Utils.toString(fixedCookieValidityMinutes), redirectType, secretKey) self.httpContextProvider.setCookie( cookieKey, cookieValue, QueueitHelpers.getCookieExpirationDate(), cookieDomain)
def store(self, event_id, queue_id, fixed_cookie_validity_minutes, cookie_domain, is_cookie_http_only, is_cookie_secure, redirect_type, secret_key): cookie_key = UserInQueueStateCookieRepository.getCookieKey(event_id) cookie_value = UserInQueueStateCookieRepository.__createCookieValue( event_id, queue_id, Utils.toString(fixed_cookie_validity_minutes), redirect_type, secret_key) self.httpContextProvider.setCookie( cookie_key, cookie_value, QueueitHelpers.getCookieExpirationDate(), cookie_domain, is_cookie_http_only, is_cookie_secure)
def __createCookieValue(eventId, queueId, fixedCookieValidityMinutes, redirectType, secretKey): issueTime = Utils.toString(QueueitHelpers.getCurrentTime()) hashValue = UserInQueueStateCookieRepository.__generateHash( eventId, queueId, fixedCookieValidityMinutes, redirectType, issueTime, secretKey) fixedCookieValidityMinutesPart = "" if (not Utils.isNilOrEmpty(fixedCookieValidityMinutes)): fixedCookieValidityMinutesPart = "&FixedValidityMins=" + fixedCookieValidityMinutes cookieValue = "EventId=" + eventId + "&QueueId=" + queueId + fixedCookieValidityMinutesPart + "&RedirectType=" + redirectType + "&IssueTime=" + issueTime + "&Hash=" + hashValue return cookieValue
def validateQueueRequest(self, target_url, queueit_token, config, customer_id, secret_key): state = self.userInQueueStateRepository.getState( config.eventId, config.cookieValidityMinute, secret_key, True) if state.isValid: if state.isStateExtendable() and config.extendCookieValidity: self.userInQueueStateRepository.store( config.eventId, state.queueId, None, Utils.toString(config.cookieDomain), config.isCookieHttpOnly, config.isCookieSecure, state.redirectType, secret_key) result = RequestValidationResult(ActionTypes.QUEUE, config.eventId, state.queueId, None, state.redirectType, config.actionName) return result queue_params = QueueUrlParams.extractQueueParams(queueit_token) request_validation_result = RequestValidationResult( None, None, None, None, None, None) is_token_valid = False if queue_params is not None: token_validation_result = self.__validateToken( config, queue_params, secret_key) is_token_valid = token_validation_result.isValid if is_token_valid: request_validation_result = self.__getValidTokenResult( config, queue_params, secret_key) else: request_validation_result = self.__getErrorResult( customer_id, target_url, config, queue_params, token_validation_result.errorCode) else: request_validation_result = self.__getQueueResult( target_url, config, customer_id) if state.isFound and not is_token_valid: self.userInQueueStateRepository.cancelQueueCookie( config.eventId, config.cookieDomain, config.isCookieHttpOnly, config.isCookieSecure) return request_validation_result
def validateQueueRequest(self, targetUrl, queueitToken, config, customerId, secretKey): state = self.userInQueueStateRepository.getState( config.eventId, config.cookieValidityMinute, secretKey, True) if (state.isValid): if (state.isStateExtendable() and config.extendCookieValidity): self.userInQueueStateRepository.store( config.eventId, state.queueId, None, Utils.toString(config.cookieDomain), state.redirectType, secretKey) result = RequestValidationResult(ActionTypes.QUEUE, config.eventId, state.queueId, None, state.redirectType) return result queueParams = QueueUrlParams.extractQueueParams(queueitToken) if (queueParams is not None): return self.__getQueueITTokenValidationResult( targetUrl, config.eventId, config, queueParams, customerId, secretKey) else: return self.__getInQueueRedirectResult(targetUrl, config, customerId)