|
|
@ -15,6 +15,7 @@ |
|
|
*/ |
|
|
*/ |
|
|
package org.thingsboard.rule.engine.metadata; |
|
|
package org.thingsboard.rule.engine.metadata; |
|
|
|
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode; |
|
|
import com.fasterxml.jackson.databind.node.ObjectNode; |
|
|
import com.fasterxml.jackson.databind.node.ObjectNode; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.apache.commons.lang3.BooleanUtils; |
|
|
import org.apache.commons.lang3.BooleanUtils; |
|
|
@ -40,11 +41,11 @@ import java.util.concurrent.ExecutionException; |
|
|
type = ComponentType.ENRICHMENT, |
|
|
type = ComponentType.ENRICHMENT, |
|
|
name = "fetch device credentials", |
|
|
name = "fetch device credentials", |
|
|
configClazz = TbFetchDeviceCredentialsNodeConfiguration.class, |
|
|
configClazz = TbFetchDeviceCredentialsNodeConfiguration.class, |
|
|
nodeDescription = "Adds <b>сredentialsType</b> and <b>сredentials</b> property to the message metadata if the " + |
|
|
nodeDescription = "Fetch device credentials for message originator", |
|
|
" configuration parameter <b>fetchToMetadata</b> is set to <code>true</code>, otherwise, adds properties " + |
|
|
nodeDetails = "Adds <b>credentialsType</b> and <b>credentials</b> properties to the message metadata if the " + |
|
|
" to the message data", |
|
|
"configuration parameter <b>fetchToMetadata</b> is set to <code>true</code>, otherwise, adds properties " + |
|
|
nodeDetails = "If originator type is not DEVICE or failed get device credentials, the <code>Failure</code> " + |
|
|
"to the message data. If originator type is not <b>DEVICE</b> or rule node failed to get device credentials " + |
|
|
" chain is used, otherwise <code>Success</code> chain is used", |
|
|
"- send Message via <code>Failure</code> chain, otherwise <code>Success</code> chain is used.", |
|
|
uiResources = {"static/rulenode/rulenode-core-config.js"}, |
|
|
uiResources = {"static/rulenode/rulenode-core-config.js"}, |
|
|
configDirective = "tbEnrichmentNodeFetchDeviceCredentialsConfig", |
|
|
configDirective = "tbEnrichmentNodeFetchDeviceCredentialsConfig", |
|
|
icon = "functions" |
|
|
icon = "functions" |
|
|
@ -78,15 +79,17 @@ public class TbFetchDeviceCredentialsNode implements TbNode { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
TbMsg transformedMsg; |
|
|
TbMsg transformedMsg; |
|
|
|
|
|
String credentialsType = deviceCredentials.getCredentialsType().name(); |
|
|
|
|
|
JsonNode credentialsInfo = ctx.getDeviceCredentialsService().credentialsInfo(deviceCredentials); |
|
|
if (fetchToMetadata) { |
|
|
if (fetchToMetadata) { |
|
|
TbMsgMetaData metaData = msg.getMetaData(); |
|
|
TbMsgMetaData metaData = msg.getMetaData(); |
|
|
metaData.putValue(CREDENTIALS_TYPE, String.valueOf(deviceCredentials.getCredentialsType())); |
|
|
metaData.putValue(CREDENTIALS_TYPE, credentialsType); |
|
|
metaData.putValue(CREDENTIALS, JacksonUtil.toString(ctx.getDeviceCredentialsService().сredentialsInfo(deviceCredentials))); |
|
|
metaData.putValue(CREDENTIALS, JacksonUtil.toString(credentialsInfo)); |
|
|
transformedMsg = TbMsg.transformMsg(msg, msg.getType(), originator, metaData, msg.getData()); |
|
|
transformedMsg = TbMsg.transformMsg(msg, msg.getType(), originator, metaData, msg.getData()); |
|
|
} else { |
|
|
} else { |
|
|
ObjectNode data = (ObjectNode) JacksonUtil.toJsonNode(msg.getData()); |
|
|
ObjectNode data = (ObjectNode) JacksonUtil.toJsonNode(msg.getData()); |
|
|
data.set(CREDENTIALS_TYPE, JacksonUtil.valueToTree(deviceCredentials.getCredentialsType())); |
|
|
data.put(CREDENTIALS_TYPE, credentialsType); |
|
|
data.set(CREDENTIALS, ctx.getDeviceCredentialsService().сredentialsInfo(deviceCredentials)); |
|
|
data.set(CREDENTIALS, credentialsInfo); |
|
|
transformedMsg = TbMsg.transformMsg(msg, msg.getType(), originator, msg.getMetaData(), JacksonUtil.toString(data)); |
|
|
transformedMsg = TbMsg.transformMsg(msg, msg.getType(), originator, msg.getMetaData(), JacksonUtil.toString(data)); |
|
|
} |
|
|
} |
|
|
ctx.tellSuccess(transformedMsg); |
|
|
ctx.tellSuccess(transformedMsg); |
|
|
|