Exemple #1
0
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'}
Exemple #2
0
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('/')