Exemple #1
0
		protected override HttpMessageWriter IsAuthorized(BaseHttpConnection c, ByteArrayPart realm, int agentIndex)
		{
			HttpMessageWriter writer;
			authorization.IsAuthorized(c.HttpReader, c.Content, realm, agentIndex, out writer);

			return writer;
		}
Exemple #2
0
        protected override HttpMessageWriter IsAuthorized(BaseHttpConnection c, ByteArrayPart realm, int agentIndex)
        {
            HttpMessageWriter writer;

            authorization.IsAuthorized(c.HttpReader, c.Content, realm, agentIndex, out writer);

            return(writer);
        }
        public void ProcessIncomingRequest(BaseHttpConnection c)
        {
            bool handled = false;

            for (int i = 0; i < agents.Length; i++)
            {
                var result = agents[i].Value.IsHandled(c.HttpReader);
                if (result.IsHandled)
                {
                    bool isAuthorized = true;

                    if (agents[i].IsAuthorizationEnabled && result.IsAuthorizationRequred)
                    {
                        var writer = IsAuthorized(c, result.Realm, i);
                        if (writer != null)
                        {
                            isAuthorized = false;
                            SendResponse(c, writer, InvalidAgentIndex);
                        }
                    }

                    if (isAuthorized)
                    {
                        agents[i].Value.HandleRequest(c, c.HttpReader, c.Content);
                    }

                    handled = true;

                    break;
                }
            }

            if (handled == false)
            {
                var writer = new HttpMessageWriter();

                writer.WriteStatusLine(StatusCodes.TemporaryRedirect);
                writer.WriteLocation(c.LocalEndPoint.Protocol == ServerProtocol.Tcp, c.HttpReader.Host.Host, c.HttpReader.Host.Port, defaultUri);
                writer.WriteContentLength(0);
                writer.WriteCRLF();

                SendResponse(c, writer, InvalidAgentIndex);
            }
        }
 protected virtual HttpMessageWriter IsAuthorized(BaseHttpConnection c, ByteArrayPart realm, int agentIndex)
 {
     return(null);
 }
		protected virtual HttpMessageWriter IsAuthorized(BaseHttpConnection c, ByteArrayPart realm, int agentIndex)
		{
			return null;
		}
		public void ProcessIncomingRequest(BaseHttpConnection c)
		{
			bool handled = false;

			for (int i = 0; i < agents.Length; i++)
			{
				var result = agents[i].Value.IsHandled(c.HttpReader);
				if (result.IsHandled)
				{
					bool isAuthorized = true;

					if (agents[i].IsAuthorizationEnabled && result.IsAuthorizationRequred)
					{
						var writer = IsAuthorized(c, result.Realm, i);
						if (writer != null)
						{
							isAuthorized = false;
							SendResponse(c, writer, InvalidAgentIndex);
						}
					}

					if (isAuthorized)
						agents[i].Value.HandleRequest(c, c.HttpReader, c.Content);

					handled = true;

					break;
				}
			}

			if (handled == false)
			{
				var writer = new HttpMessageWriter();

				writer.WriteStatusLine(StatusCodes.TemporaryRedirect);
				writer.WriteLocation(c.LocalEndPoint.Protocol == ServerProtocol.Tcp, c.HttpReader.Host.Host, c.HttpReader.Host.Port, defaultUri);
				writer.WriteContentLength(0);
				writer.WriteCRLF();

				SendResponse(c, writer, InvalidAgentIndex);
			}
		}