public IEnumerator Revoke()
        {
            LastError = null;

            if (!Authenticated)
            {
                LastError = new RDataAuthenticationException("You need to be authenticated to Revoke the authentication");
                yield break;
            }
            // If refresh token is not expired, revoke it by sending the revoke request
            if (!RefreshTokenExpired)
            {
                var revokeRequest = new RevokeRequest(RefreshToken);
                yield return(StartCoroutine(_httpClient.Send <RevokeRequest, RevokeRequest.RevokeResponse>(revokeRequest)));

                // If we have an error and this error is not an UnauthorizedException or ForbiddenException, we want to throw it
                // Otherwise, consume the error and revoke the token on the client (the token is already expired/revoked on the server)
                if (revokeRequest.HasError &&
                    !(revokeRequest.Error is Http.Exceptions.UnauthorizedException) &&
                    !(revokeRequest.Error is Http.Exceptions.ForbiddenException))
                {
                    LastError = new RDataAuthenticationException(revokeRequest.Error);
                    yield break;
                }

                if (!revokeRequest.HasResponse)
                {
                    LastError = new RDataAuthenticationException("Failed to Revoke(), http request failed but has no error");
                    yield break;
                }
            }

            ResetValues();
            SaveToPlayerPrefs();
        }
        /// <summary>
        ///     Revoke an existing endpoint.
        /// </summary>
        /// <param name="revokeParameters">The parameters for the revoke process.</param>
        /// <param name="privateKey">The private key.</param>
        /// <exception cref="RevokeException">Will be thrown if the revoking was not successful.</exception>
        public void Revoke(RevokeParameters revokeParameters, string privateKey)
        {
            var revokeRequest = new RevokeRequest
            {
                AccountId    = revokeParameters.AccountId,
                EndpointIds  = revokeParameters.EndpointIds,
                TimeZone     = UtcDataService.TimeZone,
                UtcTimestamp = UtcDataService.Now
            };

            var requestBody = JsonConvert.SerializeObject(revokeRequest);

            var httpRequestMessage = new HttpRequestMessage
            {
                Method     = HttpMethod.Delete,
                RequestUri = new Uri(_environment.RevokeUrl()),
                Content    = new StringContent(requestBody, Encoding.UTF8, "application/json")
            };

            httpRequestMessage.Headers.Add("X-Agrirouter-ApplicationId", revokeParameters.ApplicationId);
            httpRequestMessage.Headers.Add("X-Agrirouter-Signature",
                                           SignatureService.XAgrirouterSignature(requestBody, privateKey));

            var httpResponseMessage = _httpClient.SendAsync(httpRequestMessage).Result;

            if (!httpResponseMessage.IsSuccessStatusCode)
            {
                throw new RevokeException(httpResponseMessage.StatusCode,
                                          httpResponseMessage.Content.ReadAsStringAsync().Result);
            }
        }
示例#3
0
        public async Task <bool> RevokeCertificate(string uid)
        {
            var request = new RevokeRequest {
                Uid = uid
            };

            var response = await _httpClient.PostAsync("/api/Revoke", Serialize(request));

            // No response content applicable - simply return whether the status code indicates successful revocation.
            return(response.IsSuccessStatusCode);
        }
示例#4
0
        public async Task RevokeAsync(string channel)
        {
            var accessToken = this.channelStore.Get(channel).AccessToken;
            var client      = new RestClient(ApiUrl);
            var request     = new RestRequest(RevokeApi);

            request.AddParameter("Authorization", $"Bearer {accessToken}", ParameterType.HttpHeader);
            var requestObject = new RevokeRequest()
            {
            };

            request.AddObject(requestObject);
            await client.PostAsync <RevokeResponse>(request);
        }
示例#5
0
        public Response RevokeRegister(String CorpNum, String mgtKey, String orgConfirmNum, String orgTradeDate, bool smssendYN, String UserID,
                                       bool isPartCancel, int?cancelType, String supplyCost, String tax, String serviceFee, String totalAmount)
        {
            RevokeRequest request = new RevokeRequest();

            request.mgtKey        = mgtKey;
            request.orgConfirmNum = orgConfirmNum;
            request.orgTradeDate  = orgTradeDate;
            request.smssenYN      = smssendYN;
            request.isPartCancel  = isPartCancel;
            request.cancelType    = cancelType;
            request.supplyCost    = supplyCost;
            request.tax           = tax;
            request.serviceFee    = serviceFee;
            request.totalAmount   = totalAmount;

            String PostData = toJsonString(request);

            return(httppost <Response>("/Cashbill", CorpNum, UserID, PostData, "REVOKE"));
        }
        public IActionResult RevokeCertificate(RevokeRequest revokeRequest)
        {
            User user = _userDBAuthenticator.GetUser(revokeRequest.Uid);

            if (user != null)
            {
                _caDBModifier.RevokeAllCertificatesOfUser(user);
                return(NoContent());
            }
            else
            {
                _logger.LogWarning(
                    string.Format(
                        "Failed to revoke certificates of user {0}; No such user found.",
                        revokeRequest.Uid
                        )
                    );

                return(BadRequest());
            }
        }
示例#7
0
        private TelekomWebRequest CreateRequestRevokeWebRequest()
        {
            if (!HasRefreshToken())
            {
                throw new InvalidOperationException("Cannot revoke without a refresh token");
            }

            string uri = BaseUrl + "/revoke";

            var request = new RevokeRequest()
            {
                ClientId     = ClientId,
                ClientSecret = ClientSecret,
                Token        = RefreshToken,
                TokenType    = "refresh_token"
            };

            var webRequest = new TelekomWebRequest(uri, HttpMethod.POST);

            request.BuildRequestParameters(webRequest);
            return(webRequest);
        }
示例#8
0
        //취소현금영수증 즉시발행
        public CBIssueResponse RevokeRegistIssue(string CorpNum, string mgtKey, string orgConfirmNum, string orgTradeDate,
                                                 bool smssendYN     = false, string memo      = null, bool isPartCancel = false, int?cancelType   = null,
                                                 string totalAmount = null, string supplyCost = null, string tax        = null, string serviceFee = null,
                                                 string UserID      = null)
        {
            RevokeRequest request = new RevokeRequest();

            request.mgtKey        = mgtKey;
            request.orgConfirmNum = orgConfirmNum;
            request.orgTradeDate  = orgTradeDate;
            request.smssenYN      = smssendYN;
            request.memo          = memo;
            request.isPartCancel  = isPartCancel;
            request.cancelType    = cancelType;
            request.totalAmount   = totalAmount;
            request.supplyCost    = supplyCost;
            request.tax           = tax;
            request.serviceFee    = serviceFee;

            string PostData = toJsonString(request);

            return(httppost <CBIssueResponse>("/Cashbill", CorpNum, PostData, "REVOKEISSUE", null, UserID));
        }
        public ResponseResult RevokeProject(RevokeRequest request)
        {
            LogHelper.Error("调用撤单API:" + request.ToJson(), null);
            var responseResult = new ResponseResult();

            try
            {
                if (string.IsNullOrEmpty(request.bussinessId))
                {
                    throw new InvalidDataException("流水号/业务编号不能为空");
                }
                var project = ProjectService.GetProject(request.bussinessId);
                if (project == null)
                {
                    throw new InvalidDataException("评估项目未找到");
                }

                ProjectService.RevokeProject(project.Id);

                responseResult.Code    = 0;
                responseResult.Message = "success";
                responseResult.Data    = new { evalStatus = project.ProjectStatus };
            }
            catch (InvalidDataException ex)
            {
                responseResult.Code    = 1;
                responseResult.Message = ex.Message;
            }
            catch (Exception ex)
            {
                responseResult.Code    = 1;
                responseResult.Message = "error";
                LogHelper.Error("调用撤单API错误日志:", ex);
            }
            return(responseResult);
        }
示例#10
0
        private TelekomWebRequest CreateRequestRevokeWebRequest()
        {
            if (!HasRefreshToken())
                throw new InvalidOperationException("Cannot revoke without a refresh token");

            string uri = BaseUrl + "/revoke";

            var request = new RevokeRequest()
            {
                ClientId = ClientId,
                ClientSecret = ClientSecret,
                Token = RefreshToken,
                TokenType = "refresh_token"
            };

            var webRequest = new TelekomWebRequest(uri, HttpMethod.POST);
            request.BuildRequestParameters(webRequest);
            return webRequest;   
        }
示例#11
0
        public IActionResult RevokeToken([FromBody] RevokeRequest revokeRequest)
        {
            Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(revokeRequest));
            DateTime dateRequest   = DateTime.Now;
            var      response      = new IResponse <RevokeResponse>();
            string   correlationId = string.Empty;

            try
            {
                #region Authorization Usuario y Contraseña
                if (string.IsNullOrEmpty(Request.Headers["Authorization"]))
                {
                    var validate = Models.Response.Error(null, "NotAuthenticated");
                    response.Data    = null;
                    response.Message = validate.Message;
                    response.State   = validate.State;
                    return(Unauthorized(response));
                }

                //AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
                //var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':');
                correlationId = Request.Headers["Correlation-Id"].ToString();

                Core.Entity.User user = new Core.Entity.User()
                {
                    Public   = revokeRequest.PublicToken,
                    UserName = revokeRequest.UserAplication,
                    Password = revokeRequest.PasswordAplication
                };
                var userAuthenticate = _user.Authenticate(user);
                if (userAuthenticate.Data == null)
                {
                    var validate = Models.Response.Error("NotAuthenticated");
                    response.Data    = null;
                    response.Message = validate.Message;
                    response.State   = validate.State;
                    return(Unauthorized(response));
                }
                Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy()
                {
                    AppUserId = revokeRequest.AppUserId,
                    IdUser    = ((Core.Entity.User)userAuthenticate.Data).Id
                };
                Core.Entity.Policy policy = new Core.Entity.Policy()
                {
                    Name = Request.Path.Value
                };
                var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy);
                if (userPolicyAuthorize.Data == null)
                {
                    var validate = Models.Response.Error("NotUnauthorized");
                    response.Data    = null;
                    response.Message = validate.Message;
                    response.State   = validate.State;
                    return(Unauthorized(response));
                }
                #endregion

                AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
                var credentialToken        = authHeader.Parameter;
                var responsetokenValidated = _tokenManager.GetPrincipalFromExpiredToken(credentialToken);

                if (responsetokenValidated.Data == null)
                {
                    response.Data    = null;
                    response.Message = responsetokenValidated.Message;
                    response.State   = responsetokenValidated.State;
                    return(BadRequest(response));
                }
                var principal   = (ClaimsPrincipal)responsetokenValidated.Data;
                var claimList   = principal.Claims.ToList();
                var verifyEmail = claimList[2].Value;

                if (!verifyEmail.Equals(revokeRequest.Email.Trim()))
                {
                    var validate = Models.Response.Error("ClientNotSession");
                    response.Data    = null;
                    response.Message = validate.Message;
                    response.State   = validate.State;
                    return(BadRequest(response));
                }

                var token = revokeRequest.Token ?? Request.Cookies["refreshToken"];

                string ipAddress = "";
                if (Request.Headers.ContainsKey("X-Forwarded-For"))
                {
                    ipAddress = Request.Headers["X-Forwarded-For"];
                }
                else
                {
                    ipAddress = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
                }
                var revokeToken = _refreshToken.RevokeToken(token, ipAddress);
                if (revokeToken.Data == null)
                {
                    response.Data    = null;
                    response.State   = revokeToken.State;
                    response.Message = revokeToken.Message;

                    return(BadRequest(response));
                }

                response.Data = new RevokeResponse
                {
                    Token = revokeRequest.Token
                };
                response.Message = Models.Response.CommentMenssage("TokenRevokeSuccessful");
                response.State   = "000";
                return(Ok(response));
            }
            catch (Exception ex)
            {
                Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex));
                response.Data    = null;
                response.Message = "Error General";
                response.State   = "099";
                return(BadRequest(response));
            }
            finally
            {
                DateTime dateResponse = DateTime.Now;
                Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory
                {
                    ApiName       = Request.Path.Value,
                    Host          = Dns.GetHostName() + ":" + Request.Host.Port,
                    CorrelationId = correlationId,
                    AppUserId     = revokeRequest.AppUserId,
                    Request       = Framework.Common.SerializeJson.ToObject(revokeRequest),
                    DateRequest   = dateRequest,
                    Response      = Framework.Common.SerializeJson.ToObject(response),
                    DateResponse  = dateResponse,
                    CodeResponse  = response.State
                };
                _consumptionHistory.Insert(consumptionHistory);
                Logger.Debug("Request: {0} Response: {1}", revokeRequest, response);
            }
        }