private string GetResponseFromWebResponseWrapped(WebResponseWrapper responseWrapper) { string responseText; using (var tokenResponseWrapper = new StreamWrapper(responseWrapper.Get().GetResponseStream())) { InvokeLog("Token Response: " + tokenResponseWrapper.Get()); if (tokenResponseWrapper.Get() == null) { throw new AcsApiException(AcsApiError.CouldNotGetAccesstoken); } using (var reader = new StreamReader(tokenResponseWrapper.Get(), Encoding.ASCII)) { responseText = reader.ReadToEnd(); reader.Close(); } } return(responseText); }
private void LoadFssToken() { // Creating a new instance directly var client = new OAuthRequest { Method = "GET", Type = OAuthRequestType.RequestToken, SignatureMethod = OAuthSignatureMethod.HmacSha1, ConsumerKey = serviceConfig.ConsumerKey, ConsumerSecret = serviceConfig.ConsumerSecret, RequestUrl = serviceConfig.ServerRoot + AcsApiClientConfig.RequestUrl, CallbackUrl = serviceConfig.ServerRoot + "client" }; //CookieCollection responseCookies = null; string setCookieHeader; var fields = new Hashtable(); using (var responseWrapper = new WebResponseWrapper(RequestToken(client))) { var responseText = GetResponseFromWebResponseWrapped(responseWrapper); for (var i = 0; i < responseText.Split('&').Length; i++) { var fieldInfo = responseText.Split('&')[i].Split('='); fields[fieldInfo[0]] = fieldInfo[1]; } //responseCookies = responseWrapper.Get().Cookies; setCookieHeader = responseWrapper.Get().Headers["Set-Cookie"]; } var myHttpWebRequest = Login(client, setCookieHeader, fields); string jsessionid; setCookieHeader = null; try { using (var responseWrapper = new WebResponseWrapper((HttpWebResponse)myHttpWebRequest.GetResponse())) { setCookieHeader = responseWrapper.Get().Headers["Set-Cookie"]; var sessionCookie = responseWrapper.Get().Cookies[SessionIdKey]; if (sessionCookie != null) { jsessionid = sessionCookie.Value; InvokeLog("Jsesssion found at " + jsessionid); cookies.Add(sessionCookie); } else { throw new InvalidOperationException("JSession Id returned null!"); } } } catch (WebException wex) { throw new AcsApiException(AcsApiError.ServerError.ToString(), wex); } var target = new Uri(serviceConfig.ServerRoot); var cdomain = target.Host; string[] locations; using (var responseWrapper = new WebResponseWrapper(ConsumerHandshake(client, jsessionid, setCookieHeader, cdomain))) { locations = responseWrapper.Get().Headers.GetValues("location"); setCookieHeader = responseWrapper.Get().Headers["Set-Cookie"]; } if (locations == null) { throw new AcsApiException(AcsApiError.CouldNotLogin); } var myUri = new Uri(locations.FirstOrDefault() ?? string.Empty); InvokeLog("Request for uri" + myUri); if (string.IsNullOrEmpty(myUri.Query)) { // No oauth_token or oauth_verifier in location header, so didn't authenticate. throw new AcsApiException(AcsApiError.CouldNotLogin); } var accessToken = HttpUtility.ParseQueryString(myUri.Query).Get(OauthTokenKey); var oauthVerifier = HttpUtility.ParseQueryString(myUri.Query).Get(OauthVerifierKey); InvokeLog("Verifier response " + accessToken + " : " + oauthVerifier); if (string.IsNullOrEmpty(oauthVerifier)) { throw new AcsApiException(AcsApiError.CouldNotFindVerifier); } using (var requestWrapper = new WebResponseWrapper(RequestFinal(client, accessToken, oauthVerifier, cdomain, setCookieHeader))) { using (var responseStream = new StreamWrapper(requestWrapper.Get().GetResponseStream())) { if (responseStream.Get() == null) { throw new AcsApiException(AcsApiError.CouldNotGetAccesstoken); } string responseOutput; // Pipes the stream to a higher level stream reader with the required encoding format. using (var readStream = new StreamReader(responseStream.Get(), Encoding.UTF8)) { responseOutput = readStream.ReadToEnd(); } serviceConfig.AccessToken = HttpUtility.ParseQueryString(responseOutput).Get(OauthTokenKey); serviceConfig.AccessTokenSecret = HttpUtility.ParseQueryString(responseOutput).Get(OauthTokenSecretKey); InvokeLog("Final Tokens: " + serviceConfig.AccessToken + " : " + serviceConfig.AccessTokenSecret); } } }
private void LoadFssToken() { // Creating a new instance directly var client = new OAuthRequest { Method = "GET", Type = OAuthRequestType.RequestToken, SignatureMethod = OAuthSignatureMethod.HmacSha1, ConsumerKey = serviceConfig.ConsumerKey, ConsumerSecret = serviceConfig.ConsumerSecret, RequestUrl = serviceConfig.ServerRoot + AcsApiClientConfig.RequestUrl, CallbackUrl = serviceConfig.ServerRoot + "client" }; //CookieCollection responseCookies = null; string setCookieHeader; var fields = new Hashtable(); using (var responseWrapper = new WebResponseWrapper(RequestToken(client))) { var responseText = GetResponseFromWebResponseWrapped(responseWrapper); for (var i = 0; i < responseText.Split('&').Length; i++) { var fieldInfo = responseText.Split('&')[i].Split('='); fields[fieldInfo[0]] = fieldInfo[1]; } //responseCookies = responseWrapper.Get().Cookies; setCookieHeader = responseWrapper.Get().Headers["Set-Cookie"]; } var myHttpWebRequest = Login(client, setCookieHeader, fields); string jsessionid; setCookieHeader = null; try { using (var responseWrapper = new WebResponseWrapper((HttpWebResponse)myHttpWebRequest.GetResponse())) { setCookieHeader = responseWrapper.Get().Headers["Set-Cookie"]; var sessionCookie = responseWrapper.Get().Cookies[SessionIdKey]; if (sessionCookie != null) { jsessionid = sessionCookie.Value; InvokeLog("Jsesssion found at " + jsessionid); cookies.Add(sessionCookie); } else { throw new InvalidOperationException("JSession Id returned null!"); } } } catch (WebException wex) { throw new AcsApiException(AcsApiError.ServerError.ToString(), wex); } var target = new Uri(serviceConfig.ServerRoot); var cdomain = target.Host; string[] locations; using (var responseWrapper = new WebResponseWrapper(ConsumerHandshake(client, jsessionid, setCookieHeader, cdomain))) { locations = responseWrapper.Get().Headers.GetValues("location"); setCookieHeader = responseWrapper.Get().Headers["Set-Cookie"]; } if (locations == null) { throw new AcsApiException(AcsApiError.CouldNotLogin); } var myUri = new Uri(locations.FirstOrDefault() ?? string.Empty); InvokeLog("Request for uri" + myUri); if (string.IsNullOrEmpty(myUri.Query)) { // No oauth_token or oauth_verifier in location header, so didn't authenticate. throw new AcsApiException(AcsApiError.CouldNotLogin); } var accessToken = HttpUtility.ParseQueryString(myUri.Query).Get(OauthTokenKey); var oauthVerifier = HttpUtility.ParseQueryString(myUri.Query).Get(OauthVerifierKey); InvokeLog("Verifier response " + accessToken + " : " + oauthVerifier); if (string.IsNullOrEmpty(oauthVerifier)) { throw new AcsApiException(AcsApiError.CouldNotFindVerifier); } using (var requestWrapper = new WebResponseWrapper(RequestFinal(client, accessToken, oauthVerifier, cdomain, setCookieHeader))) { using (var responseStream = new StreamWrapper(requestWrapper.Get().GetResponseStream())) { if (responseStream.Get() == null) { throw new AcsApiException(AcsApiError.CouldNotGetAccesstoken); } string responseOutput; // Pipes the stream to a higher level stream reader with the required encoding format. using (var readStream = new StreamReader(responseStream.Get(), Encoding.UTF8)) { responseOutput = readStream.ReadToEnd(); } serviceConfig.AccessToken = HttpUtility.ParseQueryString(responseOutput).Get(OauthTokenKey); serviceConfig.AccessTokenSecret = HttpUtility.ParseQueryString(responseOutput).Get(OauthTokenSecretKey); InvokeLog("Final Tokens: " + serviceConfig.AccessToken + " : " + serviceConfig.AccessTokenSecret); } } }
public void TestInitialize() { Logger = MockRepository.GenerateMock<ILogger>(); Client = MockRepository.GeneratePartialMock<SimpleHttpClient>("AnAPIKey", Logger); Request = MockRepository.GenerateMock<WebRequestWrapper>(); Response = MockRepository.GenerateMock<WebResponseWrapper>(); ReqStream = new MemoryStream(); RespStream = new MemoryStream(); }
private string GetResponseFromWebResponseWrapped(WebResponseWrapper responseWrapper) { string responseText; using (var tokenResponseWrapper = new StreamWrapper(responseWrapper.Get().GetResponseStream())) { InvokeLog("Token Response: " + tokenResponseWrapper.Get()); if (tokenResponseWrapper.Get() == null) { throw new AcsApiException(AcsApiError.CouldNotGetAccesstoken); } using (var reader = new StreamReader(tokenResponseWrapper.Get(), Encoding.ASCII)) { responseText = reader.ReadToEnd(); reader.Close(); } } return responseText; }