def generate_metadata(self): """ Generate SAML metadata XML describing the service endpoints. """ auth = self._saml_auth() settings = auth.get_settings() metadata = settings.get_sp_metadata() errors = settings.validate_metadata(metadata) if errors: resp = flask.make_response(errors.join(', '), 500) resp.headers['Content-Type'] = 'text/plain' else: resp = flask.make_response(metadata, 200) resp.headers['Content-Type'] = 'text/xml' return resp