From be5eaf4881b9624c67a7e3125dbb080032502477 Mon Sep 17 00:00:00 2001 From: Eric Rasche Date: Wed, 15 Feb 2017 20:52:07 +0000 Subject: [PATCH 1/3] Util to encode or decode values --- scripts/cookie.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 scripts/cookie.py diff --git a/scripts/cookie.py b/scripts/cookie.py new file mode 100644 index 00000000000..9f2608ca038 --- /dev/null +++ b/scripts/cookie.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +import os +import sys +sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'lib'))) + +import logging +logging.basicConfig() +log = logging.getLogger(__name__) + + +from galaxy.model.orm.scripts import get_config +from galaxy.model import mapping +from galaxy.util.properties import load_app_properties +from galaxy.web.security import SecurityHelper + +# Get config file and load up SA session +config = get_config( sys.argv ) +model = mapping.init( '/tmp/', config['db_url'] ) +sa_session = model.context.current + +# With the config file we can load the full app properties +app_properties = load_app_properties(ini_file=config['config_file']) + +# We need the ID secret for configuring the security helper to decrypt +# galaxysession cookies. +if "id_secret" not in app_properties: + log.warn('No ID_SECRET specified. Please set the "id_secret" in your galaxy.ini.') + +id_secret = app_properties.get('id_secret', 'dangerous_default') + +security_helper = SecurityHelper(id_secret=id_secret) +# And get access to the models +# Login manager to manage current_user functionality + +if len(sys.argv) != 3: + sys.stdout.write("python %s (encode|decode) value\n" % sys.argv[0]) + +if sys.argv[1] == 'decode': + sys.stdout.write(security_helper.decode_guid(sys.argv[2])) +elif sys.argv[1] == 'encode': + sys.stdout.write(security_helper.encode_guid(sys.argv[2])) +else: + sys.stdout.write("Unknown argument") +sys.stdout.write('\n') From 6849752fb68b018aaf30f61d9d3c564894ed9e2b Mon Sep 17 00:00:00 2001 From: Eric Rasche Date: Wed, 15 Feb 2017 21:28:34 +0000 Subject: [PATCH 2/3] Rename, Strip F for Folder --- scripts/{cookie.py => secret_decoder_ring.py} | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) rename scripts/{cookie.py => secret_decoder_ring.py} (85%) diff --git a/scripts/cookie.py b/scripts/secret_decoder_ring.py similarity index 85% rename from scripts/cookie.py rename to scripts/secret_decoder_ring.py index 9f2608ca038..36eefb9d958 100644 --- a/scripts/cookie.py +++ b/scripts/secret_decoder_ring.py @@ -35,10 +35,13 @@ security_helper = SecurityHelper(id_secret=id_secret) if len(sys.argv) != 3: sys.stdout.write("python %s (encode|decode) value\n" % sys.argv[0]) -if sys.argv[1] == 'decode': - sys.stdout.write(security_helper.decode_guid(sys.argv[2])) -elif sys.argv[1] == 'encode': - sys.stdout.write(security_helper.encode_guid(sys.argv[2])) +action = sys.argv[1] +value = sys.argv[2] + +if action == 'decode': + sys.stdout.write(security_helper.decode_guid(value.lstrip('F'))) +elif action == 'encode': + sys.stdout.write(security_helper.encode_guid(value)) else: sys.stdout.write("Unknown argument") sys.stdout.write('\n') From fb2450ff33ebdbdeb3f1205bdc58c38519921e7a Mon Sep 17 00:00:00 2001 From: Eric Rasche Date: Wed, 15 Feb 2017 21:31:22 +0000 Subject: [PATCH 3/3] document scriptg --- scripts/secret_decoder_ring.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/secret_decoder_ring.py b/scripts/secret_decoder_ring.py index 36eefb9d958..7eae0968e9e 100644 --- a/scripts/secret_decoder_ring.py +++ b/scripts/secret_decoder_ring.py @@ -1,4 +1,7 @@ #!/usr/bin/env python +""" +Script to encode/decode the IDs that galaxy exposes to users and admins. +""" import os import sys sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'lib')))