postgis: Exclude password from ConnectionCreator::id()
- Password is not necessary for connection identification - When password is not required by the database, user can accidentally use multiple different passwords without noticing. This leads to allocating more connection pools and increase of connection consumption.
This commit is contained in:
parent
d8dbe11fd0
commit
ab05de48df
2 changed files with 19 additions and 1 deletions
|
@ -67,7 +67,7 @@ public:
|
||||||
|
|
||||||
inline std::string id() const
|
inline std::string id() const
|
||||||
{
|
{
|
||||||
return connection_string();
|
return connection_string_safe();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::string connection_string() const
|
inline std::string connection_string() const
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include <mapnik/geometry/geometry_type.hpp>
|
#include <mapnik/geometry/geometry_type.hpp>
|
||||||
#include <mapnik/unicode.hpp>
|
#include <mapnik/unicode.hpp>
|
||||||
#include <mapnik/util/fs.hpp>
|
#include <mapnik/util/fs.hpp>
|
||||||
|
#include "../../../plugins/input/postgis/connection_manager.hpp"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Compile and run just this test:
|
Compile and run just this test:
|
||||||
|
@ -406,3 +407,20 @@ TEST_CASE("postgis") {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST_CASE("ConnectionCreator") {
|
||||||
|
|
||||||
|
SECTION("ConnectionCreator::id() should not expose password")
|
||||||
|
{
|
||||||
|
ConnectionCreator<Connection> creator(boost::optional<std::string>("host"),
|
||||||
|
boost::optional<std::string>("12345"),
|
||||||
|
boost::optional<std::string>("dbname"),
|
||||||
|
boost::optional<std::string>("user"),
|
||||||
|
boost::optional<std::string>("pass"),
|
||||||
|
boost::optional<std::string>("111"));
|
||||||
|
|
||||||
|
CHECK(creator.id() == "host=host port=12345 dbname=dbname user=user connect_timeout=111");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue