internal static string GetRefreshedToken(OAuth20Token token)
        {
            if (token.IsExpired)
            {
                try
                {
                    Log.Info("DocuSign refresh token for user " + SecurityContext.CurrentAccount.ID);

                    var refreshed = DocuSignLoginProvider.RefreshToken(token.RefreshToken);

                    if (refreshed != null)
                    {
                        token.AccessToken  = refreshed.AccessToken;
                        token.RefreshToken = refreshed.RefreshToken;
                        token.ExpiresIn    = refreshed.ExpiresIn;
                        token.Timestamp    = DateTime.UtcNow;

                        SaveToken(token);
                    }
                }
                catch (Exception ex)
                {
                    Log.Error("DocuSign refresh token for user " + SecurityContext.CurrentAccount.ID, ex);
                }
            }
            return(token.AccessToken);
        }
Beispiel #2
0
 public DocuSignHelper(
     DocuSignToken docuSignToken,
     DocuSignLoginProvider docuSignLoginProvider,
     FileSecurity fileSecurity,
     IDaoFactory daoFactory,
     IOptionsMonitor <ILog> options,
     BaseCommonLinkUtility baseCommonLinkUtility,
     UserManager userManager,
     AuthContext authContext,
     DisplayUserSettingsHelper displayUserSettingsHelper,
     FileMarker fileMarker,
     GlobalFolderHelper globalFolderHelper,
     FilesMessageService filesMessageService,
     FilesLinkUtility filesLinkUtility,
     IServiceProvider serviceProvider,
     ConsumerFactory consumerFactory)
 {
     DocuSignToken             = docuSignToken;
     DocuSignLoginProvider     = docuSignLoginProvider;
     FileSecurity              = fileSecurity;
     DaoFactory                = daoFactory;
     BaseCommonLinkUtility     = baseCommonLinkUtility;
     UserManager               = userManager;
     AuthContext               = authContext;
     DisplayUserSettingsHelper = displayUserSettingsHelper;
     FileMarker                = fileMarker;
     GlobalFolderHelper        = globalFolderHelper;
     FilesMessageService       = filesMessageService;
     FilesLinkUtility          = filesLinkUtility;
     ServiceProvider           = serviceProvider;
     ConsumerFactory           = consumerFactory;
     Log = options.CurrentValue;
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsVisitor() ||
                    !FilesSettings.EnableThirdParty || !ImportConfiguration.SupportDocuSignInclusion)
                {
                    throw new SecurityException(FilesCommonResource.ErrorMassage_SecurityException_Create);
                }

                var error = Request["error"];
                if (!string.IsNullOrEmpty(error))
                {
                    if (error == "access_denied")
                    {
                        error = "Canceled at provider";
                    }
                    throw new Exception(error);
                }

                OAuth20Token token;

                var code = Request["code"];
                if (!string.IsNullOrEmpty(code))
                {
                    token = DocuSignLoginProvider.GetAccessToken(code);
                    DocuSignHelper.ValidateToken(token);
                    DocuSignToken.SaveToken(token);
                }
                else
                {
                    token = DocuSignToken.GetToken();
                    if (token == null)
                    {
                        OAuth20TokenHelper.RequestCode(HttpContext.Current,
                                                       DocuSignLoginProvider.DocuSignOauthCodeUrl,
                                                       DocuSignLoginProvider.DocuSignOAuth20ClientId,
                                                       DocuSignLoginProvider.DocuSignOAuth20RedirectUrl,
                                                       DocuSignLoginProvider.DocuSignScope);
                        return;
                    }
                }

                SubmitToken("", Source);
            }
            catch (ThreadAbortException)
            {
            }
            catch (Exception ex)
            {
                Global.Logger.Error("DocuSign", ex);
                SubmitError(ex.Message, Source);
            }
        }
 public DocuSignToken(
     TokenHelper tokenHelper,
     IOptionsMonitor <ILog> options,
     AuthContext authContext,
     DocuSignLoginProvider docuSignLoginProvider)
 {
     TokenHelper           = tokenHelper;
     AuthContext           = authContext;
     DocuSignLoginProvider = docuSignLoginProvider;
     Log = options.CurrentValue;
 }
 public ThirdpartyConfiguration(
     IConfiguration configuration,
     IDaoFactory daoFactory,
     BoxLoginProvider boxLoginProvider,
     DropboxLoginProvider dropboxLoginProvider,
     OneDriveLoginProvider oneDriveLoginProvider,
     DocuSignLoginProvider docuSignLoginProvider,
     GoogleLoginProvider googleLoginProvider)
 {
     Configuration         = configuration;
     DaoFactory            = daoFactory;
     BoxLoginProvider      = boxLoginProvider;
     DropboxLoginProvider  = dropboxLoginProvider;
     OneDriveLoginProvider = oneDriveLoginProvider;
     DocuSignLoginProvider = docuSignLoginProvider;
     GoogleLoginProvider   = googleLoginProvider;
 }