You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by al...@apache.org on 2017/06/06 13:01:29 UTC

nifi-minifi-cpp git commit: MINIFI-329: Ensure boolean value is checked before creating a secure socket

Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master 22657c48a -> feec4ea77


MINIFI-329: Ensure boolean value is checked before creating a secure socket

This closes #108.

Signed-off-by: Aldrin Piri <al...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/feec4ea7
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/feec4ea7
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/feec4ea7

Branch: refs/heads/master
Commit: feec4ea775a040b53314beef67a1b8374d0e3d84
Parents: 22657c4
Author: Marc Parisi <ph...@apache.org>
Authored: Wed May 31 09:20:49 2017 -0400
Committer: Aldrin Piri <al...@apache.org>
Committed: Tue Jun 6 09:01:01 2017 -0400

----------------------------------------------------------------------
 libminifi/src/io/StreamFactory.cpp  |  4 +-
 libminifi/test/unit/SocketTests.cpp | 73 ++++++++++++++------------------
 2 files changed, 33 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/feec4ea7/libminifi/src/io/StreamFactory.cpp
----------------------------------------------------------------------
diff --git a/libminifi/src/io/StreamFactory.cpp b/libminifi/src/io/StreamFactory.cpp
index 220883c..7990edd 100644
--- a/libminifi/src/io/StreamFactory.cpp
+++ b/libminifi/src/io/StreamFactory.cpp
@@ -31,7 +31,6 @@ namespace nifi {
 namespace minifi {
 namespace io {
 
-
 /**
  * Purpose: Socket Creator is a class that will determine if the provided socket type
  * exists per the compilation parameters
@@ -82,8 +81,7 @@ class SocketCreator : public AbstractStreamFactory {
 StreamFactory::StreamFactory(const std::shared_ptr<Configure> &configure) {
   std::string secureStr;
   bool is_secure = false;
-  if (configure->get(Configure::nifi_remote_input_secure, secureStr)) {
-    org::apache::nifi::minifi::utils::StringUtils::StringToBool(secureStr, is_secure);
+  if (configure->get(Configure::nifi_remote_input_secure, secureStr) && org::apache::nifi::minifi::utils::StringUtils::StringToBool(secureStr, is_secure)) {
     delegate_ = std::make_shared<SocketCreator<TLSSocket, TLSContext>>(configure);
   } else {
     delegate_ = std::make_shared<SocketCreator<Socket, SocketContext>>(configure);

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/feec4ea7/libminifi/test/unit/SocketTests.cpp
----------------------------------------------------------------------
diff --git a/libminifi/test/unit/SocketTests.cpp b/libminifi/test/unit/SocketTests.cpp
index 059e3c0..a791b3f 100644
--- a/libminifi/test/unit/SocketTests.cpp
+++ b/libminifi/test/unit/SocketTests.cpp
@@ -21,28 +21,24 @@
 #include <random>
 #include <chrono>
 #include <vector>
+#include <string>
 #include <memory>
 #include <utility>
 #include "../TestBase.h"
+#include "io/StreamFactory.h"
 #include "io/ClientSocket.h"
 #include "io/tls/TLSSocket.h"
 #include "utils/ThreadPool.h"
 
 TEST_CASE("TestSocket", "[TestSocket1]") {
-  org::apache::nifi::minifi::io::Socket socket(
-      std::make_shared<org::apache::nifi::minifi::io::SocketContext>(
-          std::make_shared<minifi::Configure>()),
-      "localhost", 8183);
+  org::apache::nifi::minifi::io::Socket socket(std::make_shared<org::apache::nifi::minifi::io::SocketContext>(std::make_shared<minifi::Configure>()), "localhost", 8183);
   REQUIRE(-1 == socket.initialize());
   REQUIRE("localhost" == socket.getHostname());
   socket.closeStream();
 }
 
 TEST_CASE("TestSocketWriteTest1", "[TestSocket2]") {
-  org::apache::nifi::minifi::io::Socket socket(
-      std::make_shared<org::apache::nifi::minifi::io::SocketContext>(
-          std::make_shared<minifi::Configure>()),
-      "localhost", 8183);
+  org::apache::nifi::minifi::io::Socket socket(std::make_shared<org::apache::nifi::minifi::io::SocketContext>(std::make_shared<minifi::Configure>()), "localhost", 8183);
   REQUIRE(-1 == socket.initialize());
 
   socket.writeData(0, 0);
@@ -58,17 +54,13 @@ TEST_CASE("TestSocketWriteTest1", "[TestSocket2]") {
 TEST_CASE("TestSocketWriteTest2", "[TestSocket3]") {
   std::vector<uint8_t> buffer;
   buffer.push_back('a');
-  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context =
-      std::make_shared<org::apache::nifi::minifi::io::SocketContext>(
-          std::make_shared<minifi::Configure>());
+  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context = std::make_shared<org::apache::nifi::minifi::io::SocketContext>(std::make_shared<minifi::Configure>());
 
-  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost",
-                                               9183, 1);
+  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost", 9183, 1);
 
   REQUIRE(-1 != server.initialize());
 
-  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost",
-                                               9183);
+  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost", 9183);
 
   REQUIRE(-1 != client.initialize());
 
@@ -93,17 +85,13 @@ TEST_CASE("TestGetHostName", "[TestSocket4]") {
 TEST_CASE("TestWriteEndian64", "[TestSocket4]") {
   std::vector<uint8_t> buffer;
   buffer.push_back('a');
-  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context =
-      std::make_shared<org::apache::nifi::minifi::io::SocketContext>(
-          std::make_shared<minifi::Configure>());
+  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context = std::make_shared<org::apache::nifi::minifi::io::SocketContext>(std::make_shared<minifi::Configure>());
 
-  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost",
-                                               9183, 1);
+  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost", 9183, 1);
 
   REQUIRE(-1 != server.initialize());
 
-  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost",
-                                               9183);
+  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost", 9183);
 
   REQUIRE(-1 != client.initialize());
 
@@ -124,16 +112,12 @@ TEST_CASE("TestWriteEndian32", "[TestSocket5]") {
   std::vector<uint8_t> buffer;
   buffer.push_back('a');
 
-  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context =
-      std::make_shared<org::apache::nifi::minifi::io::SocketContext>(
-          std::make_shared<minifi::Configure>());
+  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context = std::make_shared<org::apache::nifi::minifi::io::SocketContext>(std::make_shared<minifi::Configure>());
 
-  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost",
-                                               9183, 1);
+  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost", 9183, 1);
   REQUIRE(-1 != server.initialize());
 
-  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost",
-                                               9183);
+  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost", 9183);
 
   REQUIRE(-1 != client.initialize());
   {
@@ -163,17 +147,13 @@ TEST_CASE("TestSocketWriteTestAfterClose", "[TestSocket6]") {
   std::vector<uint8_t> buffer;
   buffer.push_back('a');
 
-  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context =
-      std::make_shared<org::apache::nifi::minifi::io::SocketContext>(
-          std::make_shared<minifi::Configure>());
+  std::shared_ptr<org::apache::nifi::minifi::io::SocketContext> socket_context = std::make_shared<org::apache::nifi::minifi::io::SocketContext>(std::make_shared<minifi::Configure>());
 
-  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost",
-                                               9183, 1);
+  org::apache::nifi::minifi::io::Socket server(socket_context, "localhost", 9183, 1);
 
   REQUIRE(-1 != server.initialize());
 
-  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost",
-                                               9183);
+  org::apache::nifi::minifi::io::Socket client(socket_context, "localhost", 9183);
 
   REQUIRE(-1 != client.initialize());
 
@@ -197,16 +177,13 @@ std::atomic<uint8_t> counter;
 std::mt19937_64 seed { std::random_device { }() };
 bool createSocket() {
   int mine = counter++;
-  std::shared_ptr<minifi::Configure> configuration = std::make_shared<
-      minifi::Configure>();
+  std::shared_ptr<minifi::Configure> configuration = std::make_shared<minifi::Configure>();
 
   std::uniform_int_distribution<> distribution { 10, 100 };
   std::this_thread::sleep_for(std::chrono::milliseconds { distribution(seed) });
 
   for (int i = 0; i < 50; i++) {
-    std::shared_ptr<org::apache::nifi::minifi::io::TLSContext> socketA =
-        std::make_shared<org::apache::nifi::minifi::io::TLSContext>(
-            configuration);
+    std::shared_ptr<org::apache::nifi::minifi::io::TLSContext> socketA = std::make_shared<org::apache::nifi::minifi::io::TLSContext>(configuration);
     socketA->initialize();
   }
 
@@ -236,3 +213,17 @@ TEST_CASE("TestTLSContextCreation", "[TestSocket6]") {
   REQUIRE(20 == counter.load());
 }
 
+/**
+ * MINIFI-329 was created in regards to an option existing but not
+ * being properly evaluated.
+ */
+TEST_CASE("TestTLSContextCreation2", "[TestSocket7]") {
+  std::shared_ptr<minifi::Configure> configure = std::make_shared<minifi::Configure>();
+  configure->set("nifi.remote.input.secure", "false");
+  minifi::io::StreamFactory factory(configure);
+  std::string host = "localhost";
+  minifi::io::Socket *socket = factory.createSocket(host, 10001).release();
+  minifi::io::TLSSocket *tls = dynamic_cast<minifi::io::TLSSocket*>(socket);
+  REQUIRE(tls == nullptr);
+}
+