@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()); }
@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()); }