コード例 #1
0
        public void Cannot_access_Admin_service_by_default()
        {
            try
            {
                var response = BaseUri.AppendPath("requiresadmin").GetJsonFromUrl();

                Assert.Fail("Should not allow access to protected resource");
            }
            catch (Exception ex)
            {
                if (ex.IsUnauthorized() || ex.IsAny400()) //redirect to login
                {
                    return;
                }

                throw;
            }
        }
コード例 #2
0
        public void Cannot_access_Admin_service_by_default()
        {
            try
            {
                BaseUri.AppendPath("requiresadmin").GetStringFromUrl();

                Assert.Fail("Should not allow access to protected resource");
            }
            catch (Exception ex)
            {
                if (ex.IsUnauthorized())
                {
                    return;
                }

                throw;
            }
        }
コード例 #3
0
 public void Can_access_Admin_service_with_AuthSecret()
 {
     BaseUri.AppendPath("requiresadmin").AddQueryParam("authsecret", AuthSecret).GetStringFromUrl();
 }
コード例 #4
0
ファイル: RestfulQueue.cs プロジェクト: BenButzer/iFactr-Data
        private HttpStatusCode MakeRequest(RestfulObject <T> obj, out RestfulObject <T> responseObj)
        {
            //ISerializer<T> iSerializer = SerializerFactory.Create<T>( QueueSerializationFormat );

            //Device.Log.Debug (string.QueueSerializationFormat ("Request Body: {0}", iSerializer.SerializeObject (obj.Object, MonoCross.Utilities.EncryptionMode.NoEncryption)));
            byte[] postBytes = Serializer.SerializeObjectToBytes(obj.Object, EncryptionMode.NoEncryption);
            var    headers   = MergeHeaders(obj);
            var    body      = Serializer.SerializeObject(obj.Object);

            // add OData Accept header
            if (Format == SerializationFormat.ODATA && !obj.PutPostDeleteHeaders.Contains("Accept"))
            {
                obj.PutPostDeleteHeaders.Add("Accept", "application/json");
            }

            NetworkResponse retval = Device.Network.Poster.PostBytes(BaseUri.AppendPath(obj.TransactionEndpoint), postBytes, Serializer.ContentType, obj.Verb,
                                                                     headers, obj.Object, _responseTimeout);

            // if Rest returns type and verb Put/Post then convert response to type T
            // and call event with object to pass to subscriber (e.g. a provider)
            responseObj = default(RestfulObject <T>);

            if (retval.StatusCode == HttpStatusCode.OK ||
                retval.StatusCode == HttpStatusCode.Created ||
                retval.StatusCode == HttpStatusCode.Accepted ||
                retval.StatusCode == HttpStatusCode.NoContent)
            {
                if (RequestReturnsObject)
                {
                    if (obj.Verb == HttpVerb.Post || (obj.Verb == HttpVerb.Put && Format != SerializationFormat.ODATA))
                    {
                        obj.ExpirationDate     = retval.Expiration;
                        obj.AttemptRefreshDate = retval.AttemptToRefresh;

                        if (retval.ResponseBytes != null)
                        {
                            T returnObj = Serializer.DeserializeObject(retval.ResponseBytes, EncryptionMode.NoEncryption);
                            if (returnObj == null)
                            {
                                responseObj = obj.Clone(returnObj);
                                return(retval.StatusCode);
                            }

                            responseObj = obj.Clone(returnObj);
                        }
                        else
                        {
                            responseObj = obj.Clone(default(T));
                        }
                    }
                    else if (obj.Verb == HttpVerb.Delete || (obj.Verb == HttpVerb.Put && Format == SerializationFormat.ODATA))
                    {
                        responseObj = obj.Clone(obj.Object);  // set response object to return if DELETE or OData PUT
                    }
                }
                else
                {
                    responseObj = obj.Clone(obj.Object);

                    obj.ExpirationDate     = retval.Expiration;
                    obj.AttemptRefreshDate = retval.AttemptToRefresh;
                }

                //if ( RequestReturnsObject && ( obj.Verb == HttpVerb.Post || obj.Verb == HttpVerb.Put ) )
                //{
                //    T returnObj = iSerializer.DeserializeObject( retval.ResponseString, Core.Utilities.EncryptionMode.NoEncryption );
                //    if ( returnObj == null )
                //        return retval.StatusCode;

                //    obj.ExpirationDate = retval.Expiration;
                //    obj.AttemptRefreshDate = retval.AttemptToRefresh;

                //    responseObj = obj.Clone( returnObj );
                //}
            }

            return(retval.StatusCode);
        }