Example #1
0
        protected virtual string GetHostUrlForRequest(IMediaResourceUploadRequest request)
        {
            SessionConfigUrlBuilder sessionBuilder = new SessionConfigUrlBuilder(this.restGrammar, this.webApiGrammar);
            string hostUrl = sessionBuilder.BuildUrlString(request.SessionSettings);

            return(hostUrl);
        }
        public void TestBuildNullSessionConfig()
        {
            SessionConfigUrlBuilder builder = new SessionConfigUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters());
            TestDelegate            action  = () => builder.BuildUrlString(null);

            Assert.Throws <ArgumentNullException>(action);
        }
 public GetPublicKeyTasks(SessionConfigUrlBuilder sessionConfigBuilder, IRestServiceGrammar restGrammar, IWebApiUrlParameters webApiGrammar, HttpClient httpClient)
 {
     this.sessionConfigBuilder = sessionConfigBuilder;
     this.restGrammar          = restGrammar;
     this.webApiGrammar        = webApiGrammar;
     this.httpClient           = httpClient;
 }
 public GetPublicKeyTasks(IScCredentials credentials, SessionConfigUrlBuilder sessionConfigBuilder, ISSCUrlParameters sscGrammar, HttpClient httpClient)
 {
     this.sessionConfigBuilder = sessionConfigBuilder;
     this.sscGrammar           = sscGrammar;
     this.httpClient           = httpClient;
     this.credentials          = credentials;
 }
        protected virtual async Task <PublicKeyX509Certificate> GetPublicKeyAsync(CancellationToken cancelToken = default(CancellationToken))
        {
            try
            {
                var sessionConfigBuilder = new SessionConfigUrlBuilder(this.restGrammar, this.webApiGrammar);
                var taskFlow             = new GetPublicKeyTasks(sessionConfigBuilder, this.restGrammar, this.webApiGrammar, this.httpClient);

                PublicKeyX509Certificate result = await RestApiCallFlow.LoadRequestFromNetworkFlow(this.sessionConfig, taskFlow, cancelToken);

                this.publicCertifiacte = result;
            }
            catch (ObjectDisposedException)
            {
                // CancellationToken.ThrowIfCancellationRequested()
                throw;
            }
            catch (OperationCanceledException)
            {
                // CancellationToken.ThrowIfCancellationRequested()
                // and TaskCanceledException
                throw;
            }
            catch (SitecoreMobileSdkException ex)
            {
                // throw unwrapped exception as if GetPublicKeyAsync() is an atomic phase
                throw new RsaHandshakeException("[Sitecore Mobile SDK] Public key not received properly", ex.InnerException);
            }
            catch (Exception ex)
            {
                throw new RsaHandshakeException("[Sitecore Mobile SDK] Public key not received properly", ex);
            }

            return(this.publicCertifiacte);
        }
Example #6
0
 protected AbstractDeleteItemUrlBuilder(IRestServiceGrammar restGrammar, IWebApiUrlParameters webApiGrammar)
 {
     this.RestGrammar             = restGrammar;
     this.WebApiGrammar           = webApiGrammar;
     this.sessionConfigUrlBuilder = new SessionConfigUrlBuilder(restGrammar, webApiGrammar);
     this.scopeBuilder            = new ScopeParametersUrlBuilder(restGrammar, webApiGrammar);
 }
        protected virtual string GetHostUrlForRequest(TRequest request)
        {
            SessionConfigUrlBuilder sessionBuilder = new SessionConfigUrlBuilder(this.restGrammar, this.sscGrammar);
            string hostUrl = sessionBuilder.BuildUrlString(request.SessionSettings);

            return(hostUrl);
        }
 public AuthenticateTasks(IRestServiceGrammar restGrammar, IWebApiUrlParameters webApiGrammar,
                          SessionConfigUrlBuilder urlBuilder, HttpClient httpClient, ICredentialsHeadersCryptor cryptor)
 {
     this.restGrammar        = restGrammar;
     this.webApiGrammar      = webApiGrammar;
     this.urlBuilder         = urlBuilder;
     this.httpClient         = httpClient;
     this.credentialsCryptor = cryptor;
 }
Example #9
0
        protected virtual string GetHostUrlForRequest(TRequest request)
        {
            SessionConfigUrlBuilder sessionBuilder = new SessionConfigUrlBuilder(this.utGrammar);
            string hostUrl = sessionBuilder.BuildUrlString(request.SessionConfig);

            hostUrl = hostUrl + RestGrammar.PathComponentSeparator + this.GetEndpointForRequest();

            return(hostUrl);
        }
        public void TestBuildBaseUrlWithoutSite()
        {
            SessionConfigUrlBuilder builder    = new SessionConfigUrlBuilder(RestServiceGrammar.ItemSSCV2Grammar(), SSCUrlParameters.ItemSSCV2UrlParameters());
            SessionConfigPOD        mockConfig = new SessionConfigPOD();

            mockConfig.InstanceUrl = "localhost";

            string result   = builder.BuildUrlString(mockConfig);
            string expected = "https://localhost/sitecore/api/ssc";

            Assert.AreEqual(expected, result);
        }
        public async Task <bool> AuthenticateAsync(CancellationToken cancelToken = default(CancellationToken))
        {
            var sessionUrlBuilder = new SessionConfigUrlBuilder(this.restGrammar, this.webApiGrammar);

            using (var cryptor = await this.GetCredentialsCryptorAsync(cancelToken))
            {
                var taskFlow = new AuthenticateTasks(this.restGrammar, this.webApiGrammar, sessionUrlBuilder, this.httpClient, cryptor);

                WebApiJsonStatusMessage result = await RestApiCallFlow.LoadRequestFromNetworkFlow(this.sessionConfig, taskFlow, cancelToken);

                return(result.StatusCode == 200);
            }
        }
        public void TestBuildBaseUrlWithoutSite()
        {
            SessionConfigUrlBuilder builder    = new SessionConfigUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters());
            SessionConfigPOD        mockConfig = new SessionConfigPOD();

            mockConfig.InstanceUrl       = "localhost";
            mockConfig.ItemWebApiVersion = "v1";
            mockConfig.Site = null;

            string result   = builder.BuildUrlString(mockConfig);
            string expected = "http://localhost/-/item/v1";

            Assert.AreEqual(expected, result);
        }
        protected virtual async Task <ScAuthResponse> GetPublicKeyAsync(CancellationToken cancelToken = default(CancellationToken))
        {
            ScAuthResponse response = null;

            if (this.credentials != null)
            {
                string url = SessionConfigValidator.AutocompleteInstanceUrlForcingHttps(this.Config.InstanceUrl);
                IEnumerable <Cookie> prevCookies = this.cookies.GetCookies(new Uri(url)).Cast <Cookie>();
                bool noCookies = true;

                if (prevCookies.Count() > 0)
                {
                    noCookies = this.CookiesExpired(prevCookies);
                }

                if (noCookies)
                {
                    try {
                        var sessionConfigBuilder = new SessionConfigUrlBuilder(this.restGrammar, this.sscGrammar);
                        var taskFlow             = new GetPublicKeyTasks(this.credentials, sessionConfigBuilder, this.sscGrammar, this.httpClient);

                        response = await RestApiCallFlow.LoadRequestFromNetworkFlow(this.sessionConfig, taskFlow, cancelToken);

                        IEnumerable <Cookie> newCookies = this.cookies.GetCookies(new Uri(url)).Cast <Cookie>();
                        Debug.WriteLine(newCookies.ToString());
                    } catch (ObjectDisposedException) {
                        // CancellationToken.ThrowIfCancellationRequested()
                        throw;
                    } catch (OperationCanceledException) {
                        // CancellationToken.ThrowIfCancellationRequested()
                        // and TaskCanceledException
                        throw;
                    } catch (SitecoreMobileSdkException ex) {
                        // throw unwrapped exception as if GetPublicKeyAsync() is an atomic phase
                        throw new RsaHandshakeException("[Sitecore Mobile SDK] ASPXAUTH not received properly", ex.InnerException);
                    } catch (Exception ex) {
                        throw new RsaHandshakeException("[Sitecore Mobile SDK] ASPXAUTH not received properly", ex);
                    }
                }
                else
                {
                    response = new ScAuthResponse("200");
                }
            }

            return(response);
        }
        private string GetSSCEndpointUrlForSession(ISessionConfig sessionConfig)
        {
            SessionConfigUrlBuilder builder = new SessionConfigUrlBuilder(this.restGrammar, this.sscGrammar);

            return(builder.BuildUrlString(sessionConfig));
        }
Example #15
0
 protected AbstractDeleteItemUrlBuilder(IRestServiceGrammar restGrammar, ISSCUrlParameters sscGrammar)
 {
     this.RestGrammar             = restGrammar;
     this.SSCGrammar              = sscGrammar;
     this.sessionConfigUrlBuilder = new SessionConfigUrlBuilder(restGrammar, sscGrammar);
 }