Ejemplo n.º 1
0
        public TokenManager(IAccessTokenObtainer ValidTokenObtainer, int RefreshCacheInMinutes)
        {
            this.ValidTokenObtainer = ValidTokenObtainer;
            CacheTimer = new CacheExpiration(RefreshCacheInMinutes, RefreshTokens);

            Tokens = GetAllCurrentTokens();
        }
Ejemplo n.º 2
0
        public Task Invoke(IDictionary <string, object> Environment)
        {
            try
            {
                var Headers = (IDictionary <string, string[]>)Environment["owin.RequestHeaders"];


                if (Headers.ContainsKey("access_token"))
                {
                    if (AccessTokenManager.IsValidToken(TokenFromHttpHeaders(Headers)))
                    {
                        return(NextFunction(Environment));
                    }
                    else
                    {
                        var ResponseData = new Response();
                        ResponseData.Message      = "Invalid Token Supplied";
                        ResponseData.Environment  = Environment;
                        ResponseData.ResponseCode = 401;
                        var NewHeader = new Dictionary <string, string[]>();
                        NewHeader.Add("WWW-Authenticate", new string[] { "Supplied token not valid" });
                        ResponseData.AppendHeaders = NewHeader;

                        return(ReturnResponse(ResponseData));
                    }
                }
                else
                {
                    var ResponseData = new Response();
                    ResponseData.Message      = "Invalid Token Supplied";
                    ResponseData.Environment  = Environment;
                    ResponseData.ResponseCode = 401;
                    var NewHeader = new Dictionary <string, string[]>();
                    NewHeader.Add("WWW-Authenticate", new string[] { "You must supply header access_token" });
                    ResponseData.AppendHeaders = NewHeader;
                    return(ReturnResponse(ResponseData));
                }
            }
            catch (Exception ex)
            {
                StringBuilder Message = new StringBuilder();
                Message.AppendLine(ex.Message);
                Message.AppendLine(ex.StackTrace);
                Message.AppendLine(ex.Source);
                System.Windows.Forms.MessageBox.Show(Message.ToString());

                var ResponseData = new Response();
                ResponseData.Message      = "Exception caught processing token authentication";
                ResponseData.Environment  = Environment;
                ResponseData.ResponseCode = 500;
                return(ReturnResponse(ResponseData));
            }
            finally
            {
                TokenObtainer = null;
            }
        }
Ejemplo n.º 3
0
 public TokenManagerMiddleware(AppFunc _NextFunction, IAccessTokenObtainer AccessTokenObtainer, int CacheRefreshTimeInMinutes)
 {
     NextFunction       = _NextFunction;
     TokenObtainer      = AccessTokenObtainer;
     AccessTokenManager = new TokenManager(TokenObtainer, CacheRefreshTimeInMinutes);
 }
Ejemplo n.º 4
0
 public static void UseAccessTokenManagement(this IAppBuilder App, IAccessTokenObtainer TokenObtainer, int CacheRefreshInMinutes)
 {
     App.Use <TokenManagerMiddleware>(TokenObtainer, CacheRefreshInMinutes);
 }