/// <summary> /// Create a HttpMessageHandler which handles the OAuth communication for you /// </summary> /// <param name="oAuth1Settings">OAuth1Settings</param> /// <param name="oAuth1HttpBehaviour">OAuth1HttpBehaviour</param> /// <param name="innerHandler">HttpMessageHandler</param> public OAuth1HttpMessageHandler(OAuth1Settings oAuth1Settings, OAuth1HttpBehaviour oAuth1HttpBehaviour, HttpMessageHandler innerHandler) : base(innerHandler) { if (oAuth1Settings.ClientId is null) { throw new ArgumentNullException(nameof(oAuth1Settings.ClientId)); } if (oAuth1Settings.SignatureType == OAuth1SignatureTypes.RsaSha1) { if (oAuth1Settings.RsaSha1Provider is null) { throw new ArgumentNullException(nameof(oAuth1Settings.RsaSha1Provider)); } } else if (oAuth1Settings.ClientSecret is null) { throw new ArgumentNullException(nameof(oAuth1Settings.ClientSecret)); } if (oAuth1Settings.TokenUrl is null) { throw new ArgumentNullException(nameof(oAuth1Settings.TokenUrl)); } _oAuth1Settings = oAuth1Settings; var newHttpBehaviour = oAuth1HttpBehaviour.ShallowClone(); // Remove the OnHttpMessageHandlerCreated newHttpBehaviour.OnHttpMessageHandlerCreated = null; // Use it for internal communication _oAuth1HttpBehaviour = (OAuth1HttpBehaviour)newHttpBehaviour; }
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); }