Upgrade fasterXML libraries for OS-9
Upgrade fasterXML to version 2.9.5 to address security vulnerability
Wrap calls to treeRead(InputStream) to handle new behavior of null streams
Change-Id: Id199cfacd0cf9e5371dc33de9f1e058c2e72eaa5
diff --git a/web/src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java b/web/src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java
index cebcf84..08663e4 100644
--- a/web/src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java
+++ b/web/src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java
@@ -33,6 +33,8 @@
import java.io.InputStream;
import java.util.List;
+import static org.onlab.util.Tools.readTreeFromStream;
+
/**
* Query, create and remove segment routing plicies.
*/
@@ -69,7 +71,7 @@
@Consumes(MediaType.APPLICATION_JSON)
public Response createPolicy(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode policyJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode policyJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
Policy policyInfo = POLICY_CODEC.decode(policyJson, this);
@@ -92,7 +94,7 @@
@Consumes(MediaType.APPLICATION_JSON)
public Response removePolicy(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode policyJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode policyJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
Policy policyInfo = POLICY_CODEC.decode(policyJson, this);
// TODO: Check the result
diff --git a/web/src/main/java/org/onosproject/segmentrouting/web/PseudowireWebResource.java b/web/src/main/java/org/onosproject/segmentrouting/web/PseudowireWebResource.java
index fd4c906..1d8bb76 100644
--- a/web/src/main/java/org/onosproject/segmentrouting/web/PseudowireWebResource.java
+++ b/web/src/main/java/org/onosproject/segmentrouting/web/PseudowireWebResource.java
@@ -44,6 +44,7 @@
import java.util.stream.Collectors;
import static org.onlab.util.Tools.nullIsIllegal;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Query, create and remove pseudowires.
@@ -107,7 +108,7 @@
public Response createPseudowire(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode pseudowireJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode pseudowireJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
DefaultL2TunnelDescription pseudowire = PSEUDOWIRE_CODEC.decode(pseudowireJson, this);
@@ -147,7 +148,7 @@
public Response createPseudowiresBulk(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode pseudowireJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode pseudowireJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
List<DefaultL2TunnelDescription> pseudowires;
@@ -189,7 +190,7 @@
public Response removePseudowire(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode pseudowireJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode pseudowireJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
Integer pseudowireId = PSEUDOWIRE_CODEC.decodeId(pseudowireJson);
@@ -229,7 +230,7 @@
public Response removePseudowiresBulk(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode pseudowireJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode pseudowireJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
List<Integer> ids = new ArrayList<>();
diff --git a/web/src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java b/web/src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java
index 476bcd8..010f6c9 100644
--- a/web/src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java
+++ b/web/src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java
@@ -33,6 +33,8 @@
import java.io.InputStream;
import java.util.List;
+import static org.onlab.util.Tools.readTreeFromStream;
+
/**
* Query, create and remove segment routing tunnels.
*/
@@ -69,7 +71,7 @@
@Consumes(MediaType.APPLICATION_JSON)
public Response createTunnel(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode tunnelJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode tunnelJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
Tunnel tunnelInfo = TUNNEL_CODEC.decode(tunnelJson, this);
srService.createTunnel(tunnelInfo);
@@ -88,7 +90,7 @@
@Consumes(MediaType.APPLICATION_JSON)
public Response removeTunnel(InputStream input) throws IOException {
ObjectMapper mapper = new ObjectMapper();
- ObjectNode tunnelJson = (ObjectNode) mapper.readTree(input);
+ ObjectNode tunnelJson = readTreeFromStream(mapper, input);
SegmentRoutingService srService = get(SegmentRoutingService.class);
Tunnel tunnelInfo = TUNNEL_CODEC.decode(tunnelJson, this);
srService.removeTunnel(tunnelInfo);