public bool ProcessOutgoingRequest(IRestRequest request, PacketPayload payload)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (payload == null)
            {
                throw new ArgumentNullException(nameof(payload));
            }

            //If the payload requires authorization to handle on the server then we should
            //send the JWT header with the request.

            //Check if the payload requires authorizatation
            if (!payload.GetType().HasAttribute <AuthorizationRequiredAttribute>())
            {
                return(true);                //return true means the middleware didn't encounter a failure
            }
            //If an authorization required payload is being sent but we have no token we must
            //throw an error
            if (!tokenService.isTokenAvailable)
            {
                throw new InvalidOperationException($"{nameof(ITokenService)} indicated the token was unavailable. Service cannot send {payload.GetType().Name} as it requires the token to authenticate.");
            }

            request.AddHeader("Authorization", tokenService.FullTokenHeaderValue);

            return(true);
        }
示例#2
0
        public bool TryProcessPayload(PacketPayload payload, IMessageParameters parameters, INetPeer peer)
        {
            Logger.DebugFormat("Recieved Payload Type: {0} from Peer: {1}", payload?.GetType(), peer.PeerDetails.ConnectionID);

            //Always return false for logging so we don't consume
            return(false);
        }
示例#3
0
		/// <summary>
		/// Enqueues a webrequest to be handled with the provided serialized data.
		/// This 
		/// </summary>
		/// <param name="requestPayload">Request payload.</param>
		/// <param name="requestName">String <see cref="Type"/> name of the <see cref="PacketPayload"/> type.</param>
		/// <returns>Returns the result of the enqueued request.</returns>
		public SendResult EnqueueRequest(PacketPayload requestPayload)
		{
			//Check param
			if (requestPayload == null)
				throw new ArgumentNullException(nameof(requestPayload), $"Provided parameter request payload {requestPayload} is null.");

			return EnqueueRequest(new RequestMessage(requestPayload), requestPayload.GetType().Name, requestPayload);
		}
 protected override void OnReceiveRequest(PacketPayload payload, IMessageParameters parameters)
 {
     //We're not interested in unencrypted messages on the ProxyLoadBalancing server
     if (!parameters.Encrypted)
     {
         return;
     }
     else
     {
         Logger.WarnFormat("Client: {0} at IP {1} tried to send unencrypted payload Type: {2}", PeerDetails.ConnectionID, PeerDetails.RemoteIP.ToString(), payload.GetType());
     }
 }