From 7c5ba2fdbe0b2cd0868a29a6974ac0f1ee774e72 Mon Sep 17 00:00:00 2001 From: r4sas Date: Mon, 9 Sep 2019 14:23:30 +0000 Subject: [PATCH] add URL validation for trailing slash (closes #18) Signed-off-by: r4sas --- pbincli/cli.py | 6 ++++-- pbincli/utils.py | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pbincli/cli.py b/pbincli/cli.py index 284caf0..f745d45 100755 --- a/pbincli/cli.py +++ b/pbincli/cli.py @@ -3,7 +3,7 @@ import os, sys, argparse import pbincli.actions from pbincli.api import PrivateBin -from pbincli.utils import PBinCLIException +from pbincli.utils import PBinCLIException, validate_url CONFIG_PATHS = [os.path.join(".", "pbincli.conf", ), os.path.join(os.getenv("HOME") or "~", ".config", "pbincli", "pbincli.conf") ] @@ -78,13 +78,15 @@ def main(): var = "PRIVATEBIN_{}".format(key.upper()) if var in os.environ: CONFIG[key] = os.getenv(var) + PBIN_URL = validate_url(CONFIG["server"]) + SETTINGS = { "proxy": CONFIG["proxy"], "nocheckcert": args.no_check_certificate, "noinsecurewarn": args.no_insecure_warning } - api_client = PrivateBin(CONFIG["server"], settings=SETTINGS) + api_client = PrivateBin(PBIN_URL, settings=SETTINGS) if hasattr(args, "func"): try: diff --git a/pbincli/utils.py b/pbincli/utils.py index 5f80ee2..44aa030 100644 --- a/pbincli/utils.py +++ b/pbincli/utils.py @@ -23,3 +23,9 @@ def check_writable(f): def json_encode(s): return json.dumps(s, separators=(',',':')).encode() + + +def validate_url(s): + if not s.endswith('/'): + s = s + "/" + return s