+ # Register with the IDP if the IDP URL was provided
+ if args['saml_idp_url']:
+ if args['admin_password']:
+ if args['admin_password'] == '-':
+ admin_password = sys.stdin.readline().rstrip('\n')
+ else:
+ try:
+ with open(args['admin_password']) as f:
+ admin_password = f.read().rstrip('\n')
+ except Exception as e: # pylint: disable=broad-except
+ logger.error("Failed to read password file!\n" +
+ "Error: [%s]" % e)
+ raise
+ elif ('IPSILON_ADMIN_PASSWORD' in os.environ) and \
+ (os.environ['IPSILON_ADMIN_PASSWORD']):
+ admin_password = os.environ['IPSILON_ADMIN_PASSWORD']
+ else:
+ admin_password = getpass.getpass('%s password: ' %
+ args['admin_user'])
+
+ # Read our metadata
+ sp_metadata = ''
+ try:
+ with open(sp_metafile) as f:
+ for line in f:
+ sp_metadata += line.strip()
+ except Exception as e: # pylint: disable=broad-except
+ logger.error("Failed to read SP Metadata file!\n" +
+ "Error: [%s]" % e)
+ raise
+
+ # Register the SP
+ try:
+ saml2_register_sp(args['saml_idp_url'], args['admin_user'],
+ admin_password, args['saml_sp_name'],
+ sp_metadata)
+ except Exception as e: # pylint: disable=broad-except
+ logger.error("Failed to register SP with IDP!\n" +
+ "Error: [%s]" % e)
+ raise
+