use of org.camunda.spin.Spin in project workflow-service by UKHomeOffice.
the class VariablesDecryptInterceptor method decrypt.
static void decrypt(VariableValueDto value, ProcessInstanceSpinVariableDecryptor processInstanceSpinVariableDecryptor, Boolean deserializeValues) {
Object objectTypeName = value.getValueInfo().get(VALUE_INFO_OBJECT_TYPE_NAME);
if (objectTypeName != null && objectTypeName.toString().equals(SealedObject.class.getName())) {
SealedObject object;
if (value.getValue() instanceof String) {
object = SerializationUtils.deserialize(Base64.getDecoder().decode(value.getValue().toString()));
} else {
object = (SealedObject) value.getValue();
}
Object toReturn;
Spin decrypted = processInstanceSpinVariableDecryptor.decrypt(object);
if (deserializeValues) {
toReturn = decrypted;
value.setValueInfo(new HashMap<>());
} else {
toReturn = decrypted.toString();
value.setValueInfo(Map.of(VALUE_INFO_SERIALIZATION_DATA_FORMAT, decrypted.getDataFormatName()));
}
value.setValue(toReturn);
value.setType("Json");
}
}
use of org.camunda.spin.Spin in project camunda-bpm-platform by camunda.
the class SpinValueSerializer method serializeToByteArray.
protected byte[] serializeToByteArray(Object deserializedObject) throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStreamWriter outWriter = new OutputStreamWriter(out, Context.getProcessEngineConfiguration().getDefaultCharset());
BufferedWriter bufferedWriter = new BufferedWriter(outWriter);
try {
Spin<?> wrapper = (Spin<?>) deserializedObject;
wrapper.writeToWriter(bufferedWriter);
return out.toByteArray();
} finally {
IoUtil.closeSilently(out);
IoUtil.closeSilently(outWriter);
IoUtil.closeSilently(bufferedWriter);
}
}
use of org.camunda.spin.Spin in project workflow-service by UKHomeOffice.
the class VariablesDecryptInterceptor method decrypt.
static void decrypt(VariableValueDto value, ProcessInstanceSpinVariableDecryptor processInstanceSpinVariableDecryptor, Boolean deserializeValues) {
Object objectTypeName = value.getValueInfo().get(VALUE_INFO_OBJECT_TYPE_NAME);
if (objectTypeName != null && objectTypeName.toString().equals(SealedObject.class.getName())) {
SealedObject object;
if (value.getValue() instanceof String) {
object = SerializationUtils.deserialize(Base64.getDecoder().decode(value.getValue().toString()));
} else {
object = (SealedObject) value.getValue();
}
Object toReturn;
Spin decrypted = processInstanceSpinVariableDecryptor.decrypt(object);
if (deserializeValues) {
toReturn = decrypted;
value.setValueInfo(new HashMap<>());
} else {
toReturn = decrypted.toString();
value.setValueInfo(Map.of(VALUE_INFO_SERIALIZATION_DATA_FORMAT, decrypted.getDataFormatName()));
}
value.setValue(toReturn);
value.setType("Json");
}
}
Aggregations