@Override public ExternalMessage apply(final ExternalMessage externalMessage) { final AuthorizationContext authorizationContext = getAuthorizationContextFromMessage(externalMessage); final AuthorizationContext filteredContext = PlaceholderFilter.filterAuthorizationContext(authorizationContext, externalMessage.getHeaders()); final JsonArray authSubjectsArray = mapAuthorizationContextToSubjectsArray(filteredContext); final ExternalMessage externalMessageWithSourceHeader = authSubjectsArray.get(0) .map(JsonValue::asString) .map(firstAuthorizationSubject -> externalMessage.withHeader(DittoHeaderDefinition.SOURCE.getKey(), firstAuthorizationSubject)) .orElse(externalMessage); return externalMessageWithSourceHeader.withHeader(DittoHeaderDefinition.AUTHORIZATION_SUBJECTS.getKey(), authSubjectsArray.toString()); }
private MessageMappingProcessorActor(final ActorRef publisherActor, final ActorRef conciergeForwarder, final MessageMappingProcessor processor, final String connectionId) { this.publisherActor = publisherActor; this.conciergeForwarder = conciergeForwarder; this.processor = processor; this.connectionId = connectionId; timers = new ConcurrentHashMap<>(); placeholderSubstitution = new PlaceholderSubstitution(); adjustHeaders = new AdjustHeaders(connectionId); mapHeaders = new ApplyHeaderMapping(log); applySignalIdEnforcement = new ApplySignalIdEnforcement(log); }
@Override public ExternalMessage apply(final ExternalMessage externalMessage) { final AuthorizationContext authorizationContext = getAuthorizationContextFromMessage(externalMessage); final AuthorizationContext filteredContext = PlaceholderFilter.filterAuthorizationContext(authorizationContext, externalMessage.getHeaders()); final JsonArray authSubjectsArray = mapAuthorizationContextToSubjectsArray(filteredContext); final ExternalMessage externalMessageWithSourceHeader = authSubjectsArray.get(0) .map(JsonValue::asString) .map(firstAuthorizationSubject -> externalMessage.withHeader(DittoHeaderDefinition.SOURCE.getKey(), firstAuthorizationSubject)) .orElse(externalMessage); return externalMessageWithSourceHeader.withHeader(DittoHeaderDefinition.AUTHORIZATION_SUBJECTS.getKey(), authSubjectsArray.toString()); }
private MessageMappingProcessorActor(final ActorRef publisherActor, final ActorRef conciergeForwarder, final MessageMappingProcessor processor, final String connectionId) { this.publisherActor = publisherActor; this.conciergeForwarder = conciergeForwarder; this.processor = processor; this.connectionId = connectionId; timers = new ConcurrentHashMap<>(); placeholderSubstitution = new PlaceholderSubstitution(); adjustHeaders = new AdjustHeaders(connectionId); mapHeaders = new ApplyHeaderMapping(log); applySignalIdEnforcement = new ApplySignalIdEnforcement(log); }