def metadata(): if not current_app.config.get( 'SAML_LOGIN_ENABLED') or not current_app.config.get( 'SAML_EXPOSE_METADATA_ENDPOINT'): abort(404) auth = _get_auth(request) settings = auth.get_settings() metadata = settings.get_sp_metadata() errors = settings.validate_metadata(metadata) if len(errors) > 0: abort(500, title="Metadata Error", message=', \n'.join(errors)) return metadata, 200, {'Content-Type': 'text/xml; charset=utf-8'}
def saml_single_logout(): # TODO: TEST THIS if not current_app.config.get('SAML_LOGIN_ENABLED'): abort( 403, title="Not Logged Out", message= "Please use a valid way to log out. You are not able to use CWL logout based on the current settings." ) auth = _get_auth(request) url = auth.process_slo(delete_session_cb=_saml_single_signout_callback) errors = auth.get_errors() if len(errors) > 0: current_app.logger.debug("Error when processing Single Loggout: %s" % (', '.join(errors))) else: current_app.logger.debug("SAML Single Loggout Successfull") return redirect(url) if url != None else redirect('/')