private WebRioJsonWebTokenPayload GetWebRioSsoTokenPayload(WebRioSsoConfig configuration) { if (configuration == null) { throw new ArgumentNullException("configuration"); } var payload = new WebRioJsonWebTokenPayload { IssuedAtTime = _jtiService.GetIssuedAtTime().ToString(), NotBefore = _jtiService.GetNotBeforeTime(configuration.NotBeforeTime).ToString(), Expiry = _jtiService.GetExpiry(configuration.ExpirySeconds).ToString(), Jti = WebServiceExchangeHelper.GetJti().ToString(), BranchCode = configuration.Login.BranchCode, AbtaNumber = configuration.Login.AbtaNumber, EmployeeId = configuration.Login.EmployeeId, Initials = configuration.Login.Initials, Aud = EntityRecords.Configuration.WebRioAudWebRio }; if (configuration.RequestType == RequestType.TravelPlanner) { payload.TravelPlannerInitials = configuration.Initials; payload.IncludeInitials = true; } else { payload.IncludeInitials = false; } return(payload); }
public void CreateJwtTokenTest() { var payload = GetPayload(); var fileName = ConfigurationManager.AppSettings["privateKeyFileName"]; var privateKey = File.ReadAllText(fileName); var token = WebServiceExchangeHelper.CreateJwtToken(privateKey, payload); Assert.IsNotNull(token); }
private HttpRequestMessage CreateRequest(JsonWebTokenPayload payload) { var fileName = ConfigurationManager.AppSettings["privateKeyFileName"]; var privateKey = File.ReadAllText(fileName); var token = WebServiceExchangeHelper.CreateJwtToken(privateKey, payload); HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Add("Authorization", "Bearer " + token); return(request); }
private void SetRequestData(WebRioSsoConfig configuration) { if (configuration.RequestType == RequestType.Admin) { configuration.Data = string.Empty; } else if (configuration.RequestType == RequestType.Booking || configuration.RequestType == RequestType.TravelPlanner) { configuration.Data = WebServiceExchangeHelper.SerializeOpenConsultationSsoRequestToJson(new WebRioSsoRequest { Consultation = configuration.ConsultationReference }); } }
public void SendHttpRequestTest() { var fileName = ConfigurationManager.AppSettings["privateKeyFileName"]; var privateKey = File.ReadAllText(fileName); var payload = GetPayload(); var token = WebServiceExchangeHelper.CreateJwtToken(privateKey, payload); Assert.IsNotNull(token); var data = WebServiceExchangeHelper.GetCustomerTravelPlannerJson(); Assert.IsNotNull(data); var serviceUrl = ConfigurationManager.AppSettings["serviceUrl"]; var content = WebServiceExchangeHelper.SendHttpRequest(serviceUrl, token, data); }
private WebRioResponse GetWebRioSsoResponse(string content) { if (string.IsNullOrWhiteSpace(content)) { return(null); } try { return(WebServiceExchangeHelper.DeserializeWebRioSsoResponseJson(content)); } catch (Exception) { return(null); } }
public void CallSsoService() { var login = GetSsoDetails(); var privateKey = GetPrivateInfo(); var expiredSeconds = GetConfig(DataKey.SsoTokenExpired); var notBeforeSeconds = GetConfig(DataKey.SsoTokenNotBefore); var payload = GetPayload(login, expiredSeconds, notBeforeSeconds); var token = WebServiceExchangeHelper.CreateJwtToken(privateKey, payload); var data = WebServiceExchangeHelper.GetCustomerTravelPlannerJson(); var serviceUrl = GetConfig(DataKey.OwrUrlConfigName); var content = WebServiceExchangeHelper.SendHttpRequest(serviceUrl, token, data); var eventParams = WebServiceExchangeHelper.ContentToEventParams(content); FireEvent(EventName.SsoCompleteEvent, eventParams); }
public void Setup() { _jtiService = new JwtService(new Logger()); _payload = new OwrJsonWebTokenPayload { IssuedAtTime = _jtiService.GetIssuedAtTime().ToString(), NotBefore = _jtiService.GetNotBeforeTime("100").ToString(), Expiry = _jtiService.GetExpiry("100").ToString(), Jti = WebServiceExchangeHelper.GetJti().ToString(), Aud = "CRM", BranchCode = "001", AbtaNumber = "002", EmployeeId = "1010", Initials = "IMS", CreatedBy = "IMS" }; }
public void CallSsoService(RequestActionEventArgs args) { var opportunityId = GetParamValue(args, EntityRecords.Configuration.OwrOpportunityIdParamName); var createdByInitials = GetCreatorsInitials(opportunityId); var login = GetSsoDetails(_client.CrmInterface.GetMyCrmUserId()); var privateKey = GetPrivateInfo(); var expiredSeconds = GetConfig(EntityRecords.Configuration.OwrSsoTokenExpired); var notBeforeSeconds = GetConfig(EntityRecords.Configuration.OwrSsoTokenNotBefore); var payload = GetPayload(login, expiredSeconds, notBeforeSeconds, createdByInitials); var token = _jtiService.CreateJwtToken(privateKey, payload); var data = WebServiceExchangeHelper.GetCustomerTravelPlannerJson(); var serviceUrl = GetConfig(EntityRecords.Configuration.OwrUrlConfigName); var content = _jtiService.SendHttpRequest(HttpMethod.Post, serviceUrl, token, data).Content; var eventParams = WebServiceExchangeHelper.ContentToEventParams(content); FireEvent(EntityRecords.Configuration.SsoCompleteEvent, eventParams); }
private JsonWebTokenPayload GetPayload() { var payload = new JsonWebTokenPayload { IssuedAtTime = WebServiceExchangeHelper.GetIssuedAtTime().ToString(), NotBefore = WebServiceExchangeHelper.GetNotBeforeTime("100").ToString(), Expiry = WebServiceExchangeHelper.GetExpiry("100").ToString(), Jti = WebServiceExchangeHelper.GetJti().ToString(), Aud = "CRM", BranchCode = "001", AbtaNumber = "002", EmployeeId = "1010", Initials = "IMS", CreatedBy = "IMS" }; return(payload); }
private JsonWebTokenPayload GetPayload(Entity login, string expiredSeconds, string notBeforeSeconds) { var payload = new JsonWebTokenPayload { IssuedAtTime = WebServiceExchangeHelper.GetIssuedAtTime().ToString(), NotBefore = WebServiceExchangeHelper.GetNotBeforeTime(notBeforeSeconds).ToString(), Expiry = WebServiceExchangeHelper.GetExpiry(expiredSeconds).ToString(), Jti = WebServiceExchangeHelper.GetJti().ToString(), BranchCode = login.GetAttributeValue <string>("tc_branchcode"), AbtaNumber = login.GetAttributeValue <string>("tc_abtanumber"), EmployeeId = login.GetAttributeValue <string>("tc_employeeid"), Initials = login.GetAttributeValue <string>("tc_initials"), CreatedBy = login.GetAttributeValue <EntityReference>("createdby").Name, Aud = DataKey.AudOneWebRetail }; return(payload); }
private OwrJsonWebTokenPayload GetPayload(Entity login, string expiredSeconds, string notBeforeSeconds, string createdByInitials) { var payload = new OwrJsonWebTokenPayload { IssuedAtTime = _jtiService.GetIssuedAtTime().ToString(), NotBefore = _jtiService.GetNotBeforeTime(notBeforeSeconds).ToString(), Expiry = _jtiService.GetExpiry(expiredSeconds).ToString(), Jti = WebServiceExchangeHelper.GetJti().ToString(), BranchCode = login.GetAttributeValue <string>("tc_branchcode"), AbtaNumber = login.GetAttributeValue <string>("tc_abtanumber"), EmployeeId = login.GetAttributeValue <string>("tc_employeeid"), Initials = login.GetAttributeValue <string>("tc_initials"), CreatedBy = createdByInitials, Aud = EntityRecords.Configuration.OwrAudOneWebRetail }; return(payload); }
private Dictionary <string, string> GetEventParameters(WebRioResponse webRioResponse, ResponseEntity response) { if (response == null) { throw new ArgumentNullException("response"); } var eventParameters = WebServiceExchangeHelper.ContentToEventParamsForWebRio(webRioResponse); if (eventParameters == null || eventParameters.Count == 0) { return(null); } string jsessionId = string.Empty; if (response.Cookies != null && response.Cookies.TryGetValue(ResponseAttribute.WebRioResponseCookie_JSessionId, out jsessionId)) { eventParameters.Add(ResponseAttribute.WebRioResponseCookie_JSessionId, jsessionId); } return(eventParameters); }
private void CallTravelPlannerSso(string id) { var opportunity = CrmService.GetOpportunity(_client.CrmInterface, _logger, id); if (opportunity == null) { FireEventOnOwrError("There is no opportunity in context."); return; } var rooms = CrmService.GetTravelPlannerRooms(id, _logger, _client.CrmInterface); var createdByInitials = opportunity.GetAttributeValue <string>(Opportunity.Initials); var login = CrmService.GetSsoDetails(_client.CrmInterface.GetMyCrmUserId(), _logger, _client.CrmInterface); if (login == null) { FireEventOnOwrError("Login details are missing for the logged-in user."); return; } var privateKey = CrmService.GetPrivateInfo(_logger, _client.CrmInterface); if (privateKey == null) { FireEventOnOwrError("Private Key is missing in the system"); return; } var expiredSeconds = CrmService.GetConfig(Configuration.OwrSsoTokenExpired, _logger, _client.CrmInterface); var notBeforeSeconds = CrmService.GetConfig(Configuration.OwrSsoTokenNotBefore, _logger, _client.CrmInterface); if (expiredSeconds == null || notBeforeSeconds == null) { FireEventOnOwrError("Missing payload configuration"); return; } var payload = GetPayload(login, expiredSeconds, notBeforeSeconds, createdByInitials); var token = _jtiService.CreateJwtToken(privateKey, payload); if (token == null) { FireEventOnOwrError("JWT token is null"); return; } var owrJsonHelper = new OwrJsonHelper(_client.CrmInterface, opportunity); var data = owrJsonHelper.GetCustomerTravelPlannerJson(rooms); _logger.LogInformation($"Json to be passed to owr: {data}"); var serviceUrl = CrmService.GetConfig(Configuration.OwrUrlConfigName, _logger, _client.CrmInterface); if (serviceUrl == null) { FireEventOnOwrError("Service Url is null"); return; } var content = _jtiService.SendHttpRequest(HttpMethod.Post, serviceUrl, token, data).Content; if (content == null) { FireEventOnOwrError("Owr response content is null. Please See Details in log output"); return; } var ssoResponse = WebServiceExchangeHelper.DeserializeOwrResponseJson(content, _logger); if (ssoResponse == null) { FireEventOnOwrError($"SSO Response could not be parsed. Response is {content}"); return; } var eventParams = WebServiceExchangeHelper.ContentToEventParams(ssoResponse, _logger); if (eventParams == null) { FireEventOnOwrError("SSO Response could not be parsed. Please See Details in log output"); return; } FireEventOnOwrSuccess(eventParams); }