BearerTokenCredential
using Relativity.Services.ServiceProxy;
using System.Diagnostics;
using System.Globalization;
using System.Net;
namespace Relativity.Transfer
{
public class BearerTokenCredential : IHttpCredential
{
private readonly IAuthenticationTokenProvider authTokenProvider;
public const string OAuth2UserName = "XxX_BearerTokenCredentials_XxX";
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
public string Token { get; set; }
public BearerTokenCredential(string token)
: this(token, new NullAuthTokenProvider())
{
}
public BearerTokenCredential(string token, IAuthenticationTokenProvider authTokenProvider)
{
this.authTokenProvider = authTokenProvider;
Token = token;
}
public string GetAuthenticationHeader()
{
return string.Format(CultureInfo.InvariantCulture, "Bearer {0}", Token);
}
public ICredentials CreateCredentials()
{
return new NetworkCredential("XxX_BearerTokenCredentials_XxX", Token);
}
public Credentials CreateRelativityCredentials()
{
return new BearerTokenCredentials(Token);
}
public IHttpCredential DeepCopy()
{
return new BearerTokenCredential(Token, authTokenProvider);
}
public void RefreshCredentials()
{
string text = authTokenProvider.GenerateToken();
if (!string.IsNullOrEmpty(text))
Token = text;
}
}
}