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);
+}
+