/// <summary> /// Create the JiraApi, using OAuth 1 for the communication, here the HttpClient is configured /// </summary> /// <param name="baseUri">Base URL, e.g. https://yourjiraserver</param> /// <param name="jiraOAuthSettings">JiraOAuthSettings</param> /// <param name="httpSettings">IHttpSettings or null for default</param> public static IJiraClient Create(Uri baseUri, JiraOAuthSettings jiraOAuthSettings, IHttpSettings httpSettings = null) { JiraClient client = JiraClient.Create(baseUri, httpSettings) as JiraClient; var jiraOAuthUri = client.JiraBaseUri.AppendSegments("plugins", "servlet", "oauth"); var oAuthSettings = new OAuth1Settings { TokenUrl = jiraOAuthUri.AppendSegments("request-token"), TokenMethod = HttpMethod.Post, AccessTokenUrl = jiraOAuthUri.AppendSegments("access-token"), AccessTokenMethod = HttpMethod.Post, CheckVerifier = false, SignatureType = OAuth1SignatureTypes.RsaSha1, Token = jiraOAuthSettings.Token, ClientId = jiraOAuthSettings.ConsumerKey, CloudServiceName = jiraOAuthSettings.CloudServiceName, RsaSha1Provider = jiraOAuthSettings.RsaSha1Provider, AuthorizeMode = jiraOAuthSettings.AuthorizeMode, AuthorizationUri = jiraOAuthUri.AppendSegments("authorize") .ExtendQuery(new Dictionary <string, string> { { OAuth1Parameters.Token.EnumValueOf(), "{RequestToken}" }, { OAuth1Parameters.Callback.EnumValueOf(), "{RedirectUrl}" } }) }; // Configure the OAuth1Settings client.Behaviour = client.ConfigureBehaviour(OAuth1HttpBehaviourFactory.Create(oAuthSettings), httpSettings); return(client); }
private ConfluenceOAuthClient(Uri baseUri, ConfluenceOAuthSettings confluenceOAuthSettings, IHttpSettings httpSettings = null) : base(baseUri, httpSettings) { var confluenceOAuthUri = ConfluenceUri.AppendSegments("plugins", "servlet", "oauth"); var oAuthSettings = new OAuth1Settings { TokenUrl = confluenceOAuthUri.AppendSegments("request-token"), TokenMethod = HttpMethod.Post, AccessTokenUrl = confluenceOAuthUri.AppendSegments("access-token"), AccessTokenMethod = HttpMethod.Post, CheckVerifier = false, SignatureType = OAuth1SignatureTypes.RsaSha1, // According to <a href="https://community.atlassian.com/t5/Questions/Confluence-Oauth-Authentication/qaq-p/331326#M51385">here</a> // the OAuth arguments need to be passed in the query SignatureTransport = OAuth1SignatureTransports.QueryParameters, Token = confluenceOAuthSettings.Token, ClientId = confluenceOAuthSettings.ConsumerKey, CloudServiceName = confluenceOAuthSettings.CloudServiceName, RsaSha1Provider = confluenceOAuthSettings.RsaSha1Provider, AuthorizeMode = confluenceOAuthSettings.AuthorizeMode, AuthorizationUri = confluenceOAuthUri.AppendSegments("authorize") .ExtendQuery(new Dictionary <string, string> { { OAuth1Parameters.Token.EnumValueOf(), "{RequestToken}" }, { OAuth1Parameters.Callback.EnumValueOf(), "{RedirectUrl}" } }) }; // Configure the OAuth1Settings Behaviour = ConfigureBehaviour(OAuth1HttpBehaviourFactory.Create(oAuthSettings), httpSettings); }
public FlickrDestination(IFlickrConfiguration flickrConfiguration, IFlickrLanguage flickrLanguage) { _flickrConfiguration = flickrConfiguration; _flickrLanguage = flickrLanguage; _oAuthSettings = new OAuth1Settings { Token = flickrConfiguration, ClientId = flickrConfiguration.ClientId, ClientSecret = flickrConfiguration.ClientSecret, CloudServiceName = "Flickr", AuthorizeMode = AuthorizeModes.LocalhostServer, TokenUrl = FlickrOAuthUri.AppendSegments("request_token"), TokenMethod = HttpMethod.Post, AccessTokenUrl = FlickrOAuthUri.AppendSegments("access_token"), AccessTokenMethod = HttpMethod.Post, AuthorizationUri = FlickrOAuthUri.AppendSegments("authorize") .ExtendQuery(new Dictionary <string, string> { { OAuth1Parameters.Token.EnumValueOf(), "{RequestToken}" }, { OAuth1Parameters.Callback.EnumValueOf(), "{RedirectUrl}" } }), // Create a localhost redirect uri, prefer port 47336, but use the first free found RedirectUrl = new[] { 47336, 0 }.CreateLocalHostUri().AbsoluteUri, CheckVerifier = true }; _oAuthHttpBehaviour = OAuth1HttpBehaviourFactory.Create(_oAuthSettings); _oAuthHttpBehaviour.ValidateResponseContentType = false; }
public OAuthTests(ITestOutputHelper testOutputHelper) { LogSettings.RegisterDefaultLogger <XUnitLogger>(LogLevels.Verbose, testOutputHelper); var oAuthSettings = new OAuth1Settings { ClientId = "key", ClientSecret = "secret", AuthorizeMode = AuthorizeModes.TestPassThrough, TokenUrl = OAuthTestServerUri.AppendSegments("request_token.php"), TokenMethod = HttpMethod.Post, AccessTokenUrl = OAuthTestServerUri.AppendSegments("access_token.php"), AccessTokenMethod = HttpMethod.Post, CheckVerifier = false }; _oAuthHttpBehaviour = OAuth1HttpBehaviourFactory.Create(oAuthSettings); }
public FlickrDestination( IFlickrConfiguration flickrConfiguration, IFlickrLanguage flickrLanguage, INetworkConfiguration networkConfiguration, IResourceProvider resourceProvider, ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, Func <CancellationTokenSource, Owned <PleaseWaitForm> > pleaseWaitFormFactory ) : base(coreConfiguration, greenshotLanguage) { _flickrConfiguration = flickrConfiguration; _flickrLanguage = flickrLanguage; _resourceProvider = resourceProvider; _pleaseWaitFormFactory = pleaseWaitFormFactory; _oAuthSettings = new OAuth1Settings { Token = flickrConfiguration, ClientId = flickrConfiguration.ClientId, ClientSecret = flickrConfiguration.ClientSecret, CloudServiceName = "Flickr", AuthorizeMode = AuthorizeModes.LocalhostServer, TokenUrl = FlickrOAuthUri.AppendSegments("request_token"), TokenMethod = HttpMethod.Post, AccessTokenUrl = FlickrOAuthUri.AppendSegments("access_token"), AccessTokenMethod = HttpMethod.Post, AuthorizationUri = FlickrOAuthUri.AppendSegments("authorize") .ExtendQuery(new Dictionary <string, string> { { OAuth1Parameters.Token.EnumValueOf(), "{RequestToken}" }, { OAuth1Parameters.Callback.EnumValueOf(), "{RedirectUrl}" } }), // Create a localhost redirect uri, prefer port 47336, but use the first free found RedirectUrl = new[] { 47336, 0 }.CreateLocalHostUri().AbsoluteUri, CheckVerifier = true }; _oAuthHttpBehaviour = OAuth1HttpBehaviourFactory.Create(_oAuthSettings); _oAuthHttpBehaviour.ValidateResponseContentType = false; // Use the default network settings _oAuthHttpBehaviour.HttpSettings = networkConfiguration; }
public PhotobucketDestination(IPhotobucketConfiguration photobucketConfiguration, IPhotobucketLanguage photobucketLanguage) { _photobucketConfiguration = photobucketConfiguration; _photobucketLanguage = photobucketLanguage; _oAuthSettings = new OAuth1Settings { Token = photobucketConfiguration, ClientId = photobucketConfiguration.ClientId, ClientSecret = photobucketConfiguration.ClientSecret, CloudServiceName = "Photobucket", EmbeddedBrowserWidth = 1010, EmbeddedBrowserHeight = 400, AuthorizeMode = AuthorizeModes.EmbeddedBrowser, TokenUrl = PhotobucketApiUri.AppendSegments("login", "request"), TokenMethod = HttpMethod.Post, AccessTokenUrl = PhotobucketApiUri.AppendSegments("login", "access"), AccessTokenMethod = HttpMethod.Post, AuthorizationUri = PhotobucketApiUri.AppendSegments("apilogin", "login") .ExtendQuery(new Dictionary <string, string> { { OAuth1Parameters.Token.EnumValueOf(), "{RequestToken}" }, { OAuth1Parameters.Callback.EnumValueOf(), "{RedirectUrl}" } }), RedirectUrl = "http://getgreenshot.org", CheckVerifier = false }; var oAuthHttpBehaviour = OAuth1HttpBehaviourFactory.Create(_oAuthSettings); // Store the leftover values oAuthHttpBehaviour.OnAccessTokenValues = values => { if (values != null && values.ContainsKey("subdomain")) { photobucketConfiguration.SubDomain = values["subdomain"]; } if (values != null && values.ContainsKey("username")) { photobucketConfiguration.Username = values["username"]; } }; oAuthHttpBehaviour.BeforeSend = httpRequestMessage => { if (photobucketConfiguration.SubDomain == null) { return; } var uriBuilder = new UriBuilder(httpRequestMessage.RequestUri) { Host = photobucketConfiguration.SubDomain }; httpRequestMessage.RequestUri = uriBuilder.Uri; }; // Reset the OAuth token if there is no subdomain, without this we need to request it again. if (photobucketConfiguration.SubDomain == null || photobucketConfiguration.Username == null) { photobucketConfiguration.OAuthToken = null; photobucketConfiguration.OAuthTokenSecret = null; } _oAuthHttpBehaviour = oAuthHttpBehaviour; }