Default --saml-sp-logout/post base on --saml-sp
authorJamie Lennox <jamielennox@redhat.com>
Mon, 6 Jul 2015 05:08:33 +0000 (05:08 +0000)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Tue, 7 Jul 2015 21:07:32 +0000 (23:07 +0200)
In ipsilon-client-install salow setting only --saml-sp and have
--saml-sp-logout and --saml-sp-post values based upon the provided value
rather than complaining that the defaults are wrong.

Closes-Ticket: 145
Signed-off-by: Jamie Lennox <jamielennox@redhat.com>
Reviewed-by: Simo Sorce <simo@redhat.com>
ipsilon/install/ipsilon-client-install

index 09af718..49d9e78 100755 (executable)
@@ -330,9 +330,9 @@ def parse_args():
                         help="Where saml2 authentication is enforced")
     parser.add_argument('--saml-sp', default='/saml2',
                         help="Where saml communication happens")
-    parser.add_argument('--saml-sp-logout', default='/saml2/logout',
+    parser.add_argument('--saml-sp-logout', default=None,
                         help="Single Logout URL")
-    parser.add_argument('--saml-sp-post', default='/saml2/postResponse',
+    parser.add_argument('--saml-sp-post', default=None,
                         help="Post response URL")
     parser.add_argument('--saml-secure-setup', action='store_true',
                         default=True, help="Turn on all security checks")
@@ -363,7 +363,7 @@ def parse_args():
     path_args = ['saml_base', 'saml_auth', 'saml_sp', 'saml_sp_logout',
                  'saml_sp_post']
     for path_arg in path_args:
-        if not args[path_arg].startswith('/'):
+        if args[path_arg] is not None and not args[path_arg].startswith('/'):
             raise ValueError('--%s must begin with a / character.' %
                              path_arg.replace('_', '-'))
 
@@ -374,9 +374,14 @@ def parse_args():
 
     # The saml_sp_logout and saml_sp_post settings must be subpaths
     # of saml_sp (the mellon endpoint).
-    path_args = ['saml_sp_logout', 'saml_sp_post']
-    for path_arg in path_args:
-        if not args[path_arg].startswith(args['saml_sp']):
+    path_args = {'saml_sp_logout': 'logout',
+                 'saml_sp_post': 'postResponse'}
+    for path_arg, default_path in path_args.items():
+        if args[path_arg] is None:
+            args[path_arg] = '%s/%s' % (args['saml_sp'].rstrip('/'),
+                                        default_path)
+
+        elif not args[path_arg].startswith(args['saml_sp']):
             raise ValueError('--%s must be a subpath of --saml-sp' %
                              path_arg.replace('_', '-'))