Пример #1
0
        public async Task <ActionResult> RefreshPassword([FromBody] RefreshModel refreshData)
        {
            string EmailErrorMessage;
            bool   isEmail = ValidateEmail(refreshData.Email, out EmailErrorMessage);

            if (isEmail == true)
            {
                try
                {
                    var auth = new FirebaseAuthProvider(new FirebaseConfig(ApiKey));

                    var ab = auth.SendPasswordResetEmailAsync(refreshData.Email);

                    return(StatusCode(200));
                }
                catch (Firebase.Auth.FirebaseAuthException ex)
                {
                    return(StatusCode(400, new { error_desc = ex.Reason.ToString() }));
                }
            }
            else
            {
                return(StatusCode(400, new { error_desc = "Wrong email format." }));
            }
        }
        public ActionResult RefreshToken()
        {
            var jsonString = String.Empty;

            Request.InputStream.Position = 0;
            using (var inputStream = new StreamReader(Request.InputStream))
            {
                jsonString = inputStream.ReadToEnd();
            }

            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            RefreshModel         serJsonDetails       = javaScriptSerializer.Deserialize(jsonString, typeof(RefreshModel)) as RefreshModel;


            RefreshModel refreshtoken = new APIDAL().LookupRefreshToken(new Guid(serJsonDetails.refresh_token)).FirstOrDefault();
            IdentityUser user         = UserManager.FindByNameAsync(refreshtoken.email).GetAwaiter().GetResult(); //awaite.getresult to force synchronous call.

            if (user != null)
            {
                JWTPayload payload = new JWTPayload(user.Email, user.FirstName, user.LastName, user.Telephone);

                payload.iat = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                payload.exp = payload.iat + (60 * 60); //1 hour

                byte[]          secretKey = Encoding.ASCII.GetBytes("ErvliegtEenMeeuwLangsHetRaamokja");
                RefreshResponse response  = new RefreshResponse();
                response.access_token = Jose.JWT.Encode(payload, secretKey, JwsAlgorithm.HS256);
                response.token_type   = "Bearer";
                return(Json(response));
            }

            return(new APIAuth(Request, Response).Forbidden());
        }
Пример #3
0
        public async Task <IActionResult> Refresh(RefreshModel model)
        {
            var principal         = GetPrincipalFromExpiredToken(model.Token);
            var username          = principal.Identity.Name;
            var savedRefreshToken = await GetRefreshToken(username); //Retrieve the refresh token from [AspNetUserTokens] table

            if (savedRefreshToken != model.RefreshToken)
            {
                await signInManager.SignOutAsync().ConfigureAwait(true);

                ModelState.AddModelError("Invalid Token", "Token is no longer valid. Please log back in.");
                return(BadRequest(ModelState));
            }

            var newJwtToken     = GenerateAccessToken(principal.Claims);
            var newRefreshToken = GenerateRefreshToken();

            await DeleteRefreshToken(username).ConfigureAwait(true);
            await SaveRefreshToken(username, newRefreshToken).ConfigureAwait(true);

            return(new ObjectResult(new
            {
                jwt = newJwtToken,
                refreshToken = newRefreshToken
            }));
        }
Пример #4
0
        /// <summary>
        ///     Handles the change of a dictionary on the file system
        /// </summary>
        /// <param name="dictionary"></param>
        private static void HandleInstanceDictionaryChangesOnFileSystem(Dictionary dictionary)
        {
            OpenFileOperation openFile = new OpenFileOperation(dictionary.FilePath, EfsSystem.Instance, false, true);

            openFile.ExecuteUsingProgressDialog(GuiUtils.MdiWindow, "Refreshing dictionary " +
                                                Path.GetFileNameWithoutExtension(dictionary.FilePath), false);

            RefreshModel.Execute();
        }
Пример #5
0
 /// <summary>
 ///     Perform the work as a background task
 /// </summary>
 public override void ExecuteWork()
 {
     MarkingHistory.PerformMark(() =>
     {
         FinderRepository.INSTANCE.ClearCache();
         Frame.Translate();
     });
     RefreshModel.Execute();
 }
Пример #6
0
 /// <summary>
 ///     Translates the corresponding test case, according to translation rules
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 public void TranslateHandler(object sender, EventArgs args)
 {
     MarkingHistory.PerformMark(() =>
     {
         FinderRepository.INSTANCE.ClearCache();
         Item.Translate(true);
     });
     RefreshModel.Execute();
 }
Пример #7
0
 // [ProducesResponseType(409, Type = typeof(ClientErrorResponse))]
 public async Task <IActionResult> Refresh(RefreshModel model)
 {
     try
     {
         return(Ok(await accessTokenProvider.RefreshTokenAsync(model.Token)));
     }
     catch
     {
         return(this.Error("E_INVALID_REFRESH_TOKEN", "Refresh token was invalid"));
     }
 }
Пример #8
0
 private void HandleDelete(object sender, EventArgs e)
 {
     if (Selected != null)
     {
         IModelElement model = Selected.Model as IModelElement;
         if (model != null)
         {
             model.Delete();
             RefreshModel.Execute();
         }
     }
 }
Пример #9
0
 /// <summary>
 ///     Perform the work as a background task
 /// </summary>
 public override void ExecuteWork()
 {
     MarkingHistory.PerformMark(() =>
     {
         FinderRepository.INSTANCE.ClearCache();
         foreach (Frame frame in Dictionary.Tests)
         {
             frame.Translate();
         }
     });
     RefreshModel.Execute();
 }
Пример #10
0
 private void restart_Click(object sender, EventArgs e)
 {
     if (EfsSystem.Runner != null)
     {
         EfsSystem.Runner.EndExecution();
         EfsSystem.Runner = null;
     }
     Clear();
     EfsSystem.Instance.Context.HandleEndOfCycle();
     RefreshModel.Execute();
     tabControl1.SelectedTab = testExecutionTabPage;
 }
Пример #11
0
        private static void OutputJavRefresh(object sendProcess, DataReceivedEventArgs output)
        {
            if (!string.IsNullOrEmpty(output.Data) && output.Data.StartsWith("AV:"))
            {
                var jsonStr = output.Data.Replace("AV:", "");

                RefreshModel rm = JsonConvert.DeserializeObject <RefreshModel>(jsonStr);

                Console.WriteLine("扫描 --> " + rm.Name);

                models.Add(rm);
            }
        }
Пример #12
0
        public async Task <IActionResult> Refresh([FromBody] RefreshModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ProblemModel(ModelState)));
            }

            var             agentId = GetAgentIdentifier();
            ClaimsPrincipal principal;

            try
            {
                principal = _securityService.GetPrincipalFromExpiredToken(model.Jwt);
            }
            catch (SecurityTokenException)
            {
                return(Unauthorized());
            }

            var userName           = principal.Identity.Name;
            var savedRefreshTokens = new List <UserToken>();

            try
            {
                savedRefreshTokens = await _accountService.GetRefreshTokens(userName, _jwtAuthentication.ValidIssuer, _jwtAuthentication.ValidAudience, agentId);
            }
            catch (InvalidOperationException)
            {
                return(Unauthorized());
            }

            if (!(savedRefreshTokens.Any(o => o.Token == model.RefreshToken && o.Expiration > DateTime.UtcNow)))
            {
                return(Unauthorized());
            }

            var newJwtToken     = _securityService.GenerateToken(principal.Claims);
            var newRefreshToken = _securityService.GenerateRefreshToken();

            var refreshTokenExpiration = DateTime.UtcNow.AddDays(_staticConfig.RefreshTokenExpirationDays);
            await _accountService.DeleteRefreshToken(userName, model.RefreshToken);

            await _accountService.SaveRefreshToken(userName, newRefreshToken, agentId,
                                                   _jwtAuthentication.ValidIssuer, _jwtAuthentication.ValidAudience, refreshTokenExpiration);

            return(Ok(new TokenResultModel
            {
                Jwt = newJwtToken,
                RefreshToken = newRefreshToken
            }));
        }
Пример #13
0
        public IActionResult RefreshToken(RefreshModel refreshModel)
        {
            if (!ModelState.IsValid)
            {
                return(Unauthorized());
            }

            AuthenticateResponse response = _userService.RefreshToken(refreshModel.Username, refreshModel.RefreshToken);

            if (response == null)
            {
                return(Unauthorized());
            }

            return(Ok(response));
        }
Пример #14
0
        public IActionResult RevokeRefreshToken(RefreshModel refreshModel)
        {
            if (!ModelState.IsValid)
            {
                return(Unauthorized());
            }

            bool isRevoked = _userService.RevokeRefreshToken(refreshModel.Username, refreshModel.RefreshToken);

            if (!isRevoked)
            {
                return(Unauthorized());
            }

            return(Ok("Revoked"));
        }
Пример #15
0
        public IActionResult RefreshToken([FromRoute] string refreshToken)
        {
            var userId = HttpContext.GetUserId();

            if (!_manager.FindUser(userId))
            {
                return(BadRequest("User does not exist"));
            }

            var response = new RefreshModel
            {
                AccessToken  = _jwtIssuer.IssueAccessJwt(userId),
                RefreshToken = _jwtIssuer.IssueRefreshJwt(userId)
            };

            return(Ok(response));
        }
Пример #16
0
        public async Task <IActionResult> Refresh(RefreshModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            ClaimsPrincipal principal;

            try
            {
                principal = GetPrincipalFromExpiredToken(model.Token);
            }
            catch (SecurityTokenException e)
            {
                return(BadRequest(e.Message));
            }

            var user = await _userManager.FindByIdAsync(principal.Identity.Name);

            var result = await _dbContext.UserTokens.SingleOrDefaultAsync(t =>
                                                                          t.UserId == user.Id && t.Value == model.RefreshToken);

            if (user is null || result is null)
            {
                return(BadRequest());
            }

            var newToken = GenerateJwtToken(principal.Claims);
            await _userManager.RemoveAuthenticationTokenAsync(user, _jwtOptions.RefreshProvider,
                                                              "RefreshToken");

            var newRefreshToken = await _userManager.GenerateUserTokenAsync(user,
                                                                            _jwtOptions.RefreshProvider, "RefreshToken");

            await _userManager.SetAuthenticationTokenAsync(user, _jwtOptions.RefreshProvider,
                                                           "RefreshToken", newRefreshToken);

            return(Ok(new
            {
                token = newToken,
                expiration = DateTime.Now.AddMinutes(Convert.ToDouble(_jwtOptions.TokenValidMinutes)),
                refreshToken = newRefreshToken
            }));
        }
Пример #17
0
        public async Task <IActionResult> Post([FromBody] RefreshModel model)
        {
            try {
                var refresh = await this.authService.RefreshToken(model.RefreshToken);

                return(Ok(new TokenResponse()
                {
                    RefreshToken = refresh.Refresh.EncodedToken,
                    Token = refresh.Token.EncodedToken,
                    ExpiresAt = refresh.Token.TokenModel.ValidTo,
                    Sub = refresh.Token.TokenModel.Subject,
                    UniqueName = refresh.Token.TokenModel.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.UniqueName)?.Value
                }));
            } catch (LoginException error) {
                return(Unauthorized(new ErrorResponse()
                {
                    Message = error.Message
                }));
            }
        }
Пример #18
0
        public async Task <AuthResponse> RefreshAsync(RefreshModel model)
        {
            var user = await GetUserByAccessTokenAsync(model.AccessToken);

            if (user == null)
            {
                throw new SecurityTokenException("Invalid token!");
            }
            var refreshToken = await _sessionRefreshTokenRepository.GetSessionByTokenAsync(model.RefreshToken);

            if (refreshToken == null || refreshToken.UserId != user.Id)
            {
                throw new SecurityTokenException("Invalid token!");
            }
            else if (!refreshToken.IsActive || DateTime.UtcNow > refreshToken.ExpiredTime)
            {
                throw new SecurityTokenException("Expired token!");
            }
            return(GetAuthResponse(user, await UpdateRefreshToken(refreshToken)));
        }
Пример #19
0
        public void AddTransitionHandler(object sender, EventArgs args)
        {
            SelectStartAndTargetStateForTransition dialog = new SelectStartAndTargetStateForTransition();

            dialog.SetStateMachine(Item.EnclosingStateMachine, Item);
            dialog.ShowDialog(GuiUtils.MdiWindow);

            if (dialog.OkCkicked)
            {
                State sourceState = Item.EnclosingStateMachine.FindState(dialog.StartStateName);
                if (sourceState != null)
                {
                    Rule rule = Rule.CreateDefault(sourceState.StateMachine.Rules);
                    sourceState.StateMachine.appendRules(rule);
                    RuleCondition ruleCondition = (RuleCondition)rule.RuleConditions[0];

                    Action action = Action.CreateDefault(ruleCondition.Actions);
                    action.ExpressionText = "THIS <- " + dialog.EndStateName;
                    ruleCondition.appendActions(action);

                    RefreshModel.Execute();
                }
            }
        }
Пример #20
0
 public async Task <AuthResponse> RefreshAsync([FromBody] RefreshModel model)
 {
     return(await _authService.RefreshAsync(model));
 }
Пример #21
0
 public void AddHandler(object sender, EventArgs args)
 {
     Item.appendSteps(Step.CreateDefault(Item.Steps));
     // TODO do this in a less ad hoc way
     RefreshModel.Execute();
 }
Пример #22
0
        public static List <RefreshModel> GetJavbusAVList(string url, int page, bool onlyMag = true)
        {
            List <RefreshModel> ret = new List <RefreshModel>();

            var cc = HtmlManager.GetCookies("https://www.javbus.com");

            if (onlyMag)
            {
                cc.Add(new Cookie()
                {
                    Domain = "www.javbus.com",
                    Name   = "existmag",
                    Value  = "mag"
                });
            }
            else
            {
                cc.Add(new Cookie()
                {
                    Domain = "www.javbus.com",
                    Name   = "existmag",
                    Value  = "all"
                });
            }

            var c = new CookieContainer();

            c.Add(cc);

            for (int i = 1; i <= page; i++)
            {
                var htmlResult = HtmlManager.GetHtmlContentViaUrl(url + "/" + i, "utf-8", true, c);

                if (htmlResult.Success)
                {
                    HtmlDocument htmlDocument = new HtmlDocument();
                    htmlDocument.LoadHtml(htmlResult.Content);

                    var itemPath = "//div[@class='item']";

                    var itemNodes = htmlDocument.DocumentNode.SelectNodes(itemPath);

                    foreach (var item in itemNodes)
                    {
                        if (!item.InnerHtml.Contains("avatar-box"))
                        {
                            RefreshModel temp = new RefreshModel();

                            var itemUrl = item.ChildNodes[1].Attributes["href"].Value;
                            var id      = itemUrl.Substring(itemUrl.LastIndexOf("/") + 1);
                            var name    = item.ChildNodes[1].ChildNodes[1].ChildNodes[1].Attributes["title"].Value;
                            var pic     = item.ChildNodes[1].ChildNodes[1].ChildNodes[1].Attributes["src"].Value;

                            temp.Id   = id;
                            temp.Name = name;
                            temp.Url  = pic.Replace("https://pics.javbus.com/thumb/", "https://pics.javbus.com/cover/").Replace(".jpg", "_b.jpg");

                            ret.Add(temp);
                        }
                    }
                }
            }

            return(ret);
        }
Пример #23
0
 public async Task <AuthResponse> RefreshAsync(RefreshModel model)
 {
     return(await _authProvider.RefreshAsync(model));
 }
Пример #24
0
        public IActionResult Refresh([FromBody] RefreshModel refreshModel)
        {
            var principal = tokenService.GetPrincipalFromExpiredToken(refreshModel.AccessToken);

            // If null, the token isn't valid
            if (principal == null)
            {
                return(BadRequest());
            }

            // Gets the user Id from Claims
            int Id;

            Int32.TryParse(principal.FindFirstValue(ClaimTypes.NameIdentifier), out Id);

            User user = unitOfWork.Users.Retrieve(Id);

            // Checks that the user exists and has a refresh token
            if (user == null || user.RefreshTokens.Count() == 0)
            {
                return(BadRequest());
            }

            // Checks that the refresh token from the client,
            // matches one asignt to the user
            RefreshToken storedRefreshToken = null;

            foreach (RefreshToken r in user.RefreshTokens)
            {
                if ((r.Token).Equals(refreshModel.RefreshToken))
                {
                    storedRefreshToken = r;
                }
            }

            if (storedRefreshToken == null)
            {
                return(BadRequest());
            }

            // Generates a new access token and refresh token
            var newJwtToken     = tokenService.GenerateAccessToken(principal.Claims);
            var newRefreshToken = tokenService.GenerateRefreshToken();

            // Deletes the old refresh token from database
            unitOfWork.Users.DeleteRefrechToken(storedRefreshToken);

            // Add the new refresh token to user
            user.RefreshTokens.Add
            (
                new RefreshToken {
                Token = newRefreshToken
            }
            );

            unitOfWork.Users.Update(user);
            unitOfWork.Save();

            return(new ObjectResult(new
            {
                accessToken = newJwtToken,
                refreshToken = newRefreshToken
            }));
        }
Пример #25
0
 public async Task LogoutAsync([FromBody] RefreshModel model)
 {
     await _authService.LogoutAsync(HttpContext.GetCurrentUserId());
 }
Пример #26
0
 public async Task UpdateValidValues(PropertyInfo propertyInfo, IEnumerable <string> validOptions)
 {
     validValues[propertyInfo] = validOptions;
     await RefreshModel.Invoke();
 }
Пример #27
0
 public async Task <IActionResult> Refresh([FromBody] RefreshModel model)
 {
     return(Ok());
 }