Exemplo n.º 1
0
        public bool IsValidAccessToken(Guid accessTokenId, string[] accessGroup)
        {
            base.Logger.DebugFormat("Test access token {0} date", accessTokenId);
            // test if token is valid
            ICollection <TakeDocModel.AccessToken> accessTokens = daoAccessToken.GetBy(x => x.Id == accessTokenId &&
                                                                                       x.DateStartUTC <= System.DateTime.UtcNow &&
                                                                                       System.DateTime.UtcNow <= x.DateEndUTC);

            if (accessTokens.Count() > 1)
            {
                return(false);
            }
            if (accessTokens.Count() <= 0)
            {
                return(false);
            }
            base.Logger.DebugFormat("Test access token  {0} has valid date", accessTokenId);
            base.Logger.DebugFormat("Test access token  {0} group", accessTokenId);
            if (accessGroup.Count() == 1 && accessGroup[0] == string.Empty)
            {
                return(true);
            }

            TakeDocModel.AccessToken current = accessTokens.First();
            TakeDocModel.UserTk      user    = daoUserTk.GetBy(x => x.UserTkId == current.ClientId, x => x.GroupTk).First();
            if (accessGroup.Contains(user.GroupTk.GroupTkReference) == false)
            {
                base.Logger.DebugFormat("no access for {0} token because is invalid group access", accessTokenId);
                return(false);
            }
            base.Logger.DebugFormat("Test access token  {0} group is valid", accessTokenId);

            return(true);
        }
Exemplo n.º 2
0
        private TakeDocModel.AccessToken GetNewAccessToken(Guid clientId, Guid tokenId, Guid roleId, Guid refreshTokenId, string source)
        {
            int durationAccess = Convert.ToInt32(daoParameter.GetBy(x => x.ParameterReference == "ACCESS_TOKEN_DURATION").First().ParameterValue);

            TakeDocModel.AccessToken access = new TakeDocModel.AccessToken();

            access.Id             = tokenId;
            access.ClientId       = clientId;
            access.DateStartUTC   = System.DateTime.UtcNow;
            access.DateEndUTC     = System.DateTime.UtcNow.AddSeconds(durationAccess);
            access.Source         = source;
            access.Role           = roleId;
            access.RefreshTokenId = refreshTokenId;
            daoAccessToken.Context.SaveChanges();

            daoAccessToken.Context.AccessToken.Add(access);
            daoRefreshToken.Context.SaveChanges();
            return(access);
        }
Exemplo n.º 3
0
        public HttpResponseMessage CreateAccessToken(Guid refreshTokenId)
        {
            TakeDocService.Security.Interface.ITokenService token = Utility.MyUnityHelper.UnityHelper.Resolve <TakeDocService.Security.Interface.ITokenService>();
            try
            {
                TakeDocModel.AccessToken access = token.GetAccessToken(refreshTokenId);

                var back = new
                {
                    AccessToken      = access.Id,
                    AccessTokenTicks = access.DateEndUTC.Value.Ticks
                };

                return(Request.CreateResponse(back));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }