public void IdentifyRequestMessageEncoding() { IdentifyRequestMessage originalMessage = new IdentifyRequestMessage(); originalMessage.ParticipantId = Guid.NewGuid(); originalMessage.ParticipantIdentityType = "open-id"; originalMessage.ParticipantIdentity = "test-open-id"; byte[] encodedBytes = new byte[originalMessage.FrameDataSize(0)]; int dataLength = originalMessage.EncodeFrameData(0, encodedBytes, 0); IdentifyRequestMessage decodedMessage = new IdentifyRequestMessage(); decodedMessage.DecodeFrameData(0, encodedBytes, 0, dataLength); decodedMessage.MessageId = originalMessage.MessageId; String originalMessageString = originalMessage.ToString(); String decodedMessageString = decodedMessage.ToString(); Assert.AreEqual(originalMessageString, decodedMessageString); }
private void RequestIdentify(BubbleLink bubbleLink, CloudObject cloudObject) { Session session = bubble.GetBubbleLinkSession(bubbleLink); Guid participantId = cloudObject.OwnerId; ParticipantLink participantLink = bubble.GetParticipant(cloudObject.OwnerId); // Delegate to access participant identity string participantIdentity = CloudParticipantIdentify(participantId); IdentifyRequestMessage identifyRequest = (IdentifyRequestMessage)MessageFactory.Current.ReserveMessage(typeof(IdentifyRequestMessage)); identifyRequest.ParticipantId = participantId; identifyRequest.ParticipantIdentityType = IdentifyRequestMessage.OPEN_ID_IDENTITY; identifyRequest.ParticipantIdentity = participantIdentity; Handover handover = new Handover(); handover.Started = DateTime.Now; handover.RemoteBubbleId = bubbleLink.RemoteBubbleId; handover.ParticipantId = cloudObject.OwnerId; handover.ObjectId = cloudObject.ObjectId; handover.IdentityRequestMessageId = identifyRequest.MessageId; handovers.Add(handover); LogUtil.Info("Sent identify request from " + bubble.BubbleName + " to " + bubbleLink.RemoteBubbleName + " for " + identifyRequest.ParticipantIdentity + " (" + identifyRequest.ParticipantIdentityType + ") to be able to handover object " + cloudObject.ObjectId + "."); session.Send(identifyRequest); }
public void EjectRequestMessageClear() { IdentifyRequestMessage originalMessage = new IdentifyRequestMessage(); originalMessage.ParticipantId = Guid.NewGuid(); originalMessage.ParticipantIdentityType = "open-id"; originalMessage.ParticipantIdentity = "test-open-id"; originalMessage.Clear(); IdentifyRequestMessage emptyMessage = new IdentifyRequestMessage(); emptyMessage.MessageId = originalMessage.MessageId; Assert.AreEqual(originalMessage.ToString(), emptyMessage.ToString()); }
private void HandleIdentifyRequest(Session session, IdentifyRequestMessage identifyRequest) { BubbleLink bubbleLink = bubble.GetBubbleLink(session); LogUtil.Info("Received identify request from " + bubbleLink.RemoteBubbleName + " to " + bubble.BubbleName + " for " + identifyRequest.ParticipantIdentity + " (" + identifyRequest.ParticipantIdentityType + ")."); IdentifyResponseMessage identifyResponse = (IdentifyResponseMessage)MessageFactory.Current.ReserveMessage(typeof(IdentifyResponseMessage)); identifyResponse.RequestMessageId = identifyRequest.MessageId; // Call identify to allow application to reject identity. identifyResponse.FailureCode = CloudParticipantIdentified(bubble, identifyRequest); session.Send(identifyResponse); }
public byte OnCloudParticipantIdentified(CloudBubble bubble, IdentifyRequestMessage message) { Guid participantId = message.ParticipantId; String participantIdentifier = message.ParticipantIdentity; String participantIdentityType = message.ParticipantIdentityType; if (!participantIdentityType.Equals(IdentifyRequestMessage.OPEN_ID_IDENTITY)) { return(MxpResponseCodes.UNSUPPORTED_OPERATION); } Participant participant = QueryUtil.First <DaemonLogic.Participant>( from p in entityContext.Participant where p.ParticipantId == participantId select p); if (participant != null) { if (participant.OpenIdUrl != participantIdentifier) { return(MxpResponseCodes.RESERVED_ID); } else { return(MxpResponseCodes.SUCCESS); } } participant = QueryUtil.First <DaemonLogic.Participant>( from p in entityContext.Participant where p.OpenIdUrl == participantIdentifier select p); if (participant != null) { return(MxpResponseCodes.UNAUTHORIZED_OPERATION); } participant = new Participant { ParticipantId = participantId, OpenIdUrl = participantIdentifier, }; entityContext.AddToParticipant(participant); entityContext.SaveChanges(); return(MxpResponseCodes.SUCCESS); }