def logout(): # Remove the user information from the session app.logger.info("Logout requested") url = '/' if current_user.authentication_type == 'id_porten': if MOCK_IDPORTEN: logout_user() return redirect('/') logout_request = LogoutRequest(name_id=current_user.misc["name_id"], session_index=current_user.misc["session_index"], **app.idporten_settings) app.logger.info("logout_request.raw_xml=%s", logout_request.raw_xml) url = logout_request.get_signed_url(app.idporten_settings["private_key_file"]) app.logger.info("Logging out: url=%s", url) elif current_user.authentication_type == 'active_directory': if MOCK_ADFS: logout_user() return redirect('/') # Note: We never really log out from adfs, it is SSO in TK and we only want # to log out from our system logout_user() # Redirect to logout path on adfs idp url = app.adfs_settings['logout_target_url'] + '?wa=wsignout1.0' app.logger.info("Logging out: url=%s", url) return redirect(url)
def logout(): print "Logout requested" logout_request = LogoutRequest(name_id=user_info["name_id"], session_index=user_info["session_index"], **settings) print "Logout xml", logout_request.raw_xml url = logout_request.get_signed_url(settings["private_key_file"]) print "OUTGOING LOGOUT URL: ", url return redirect(url)
def logout(): # Remove the user information from the session app.logger.info("Logout requested") user = authentication.get_current_user() logout_request = LogoutRequest(name_id=user["misc"]["name_id"], session_index=user["misc"]["session_index"], **settings) app.logger.info("logout_request.raw_xml=%s", logout_request.raw_xml) url = logout_request.get_signed_url(settings["private_key_file"]) app.logger.info("Logging out: url=%s", url) return redirect(url)
def test_create(self): fake_uuid_func = fudge.Fake('uuid', callable=True) fake_uuid_func.with_arg_count(0) fake_uuid = fudge.Fake('foo_uuid') fake_uuid.has_attr(hex='hex_uuid') fake_uuid = fake_uuid_func.returns(fake_uuid) def fake_clock(): return datetime(2013, 9, 23, 15, 55, 43) logout_target_url = "https://example.com/logout_destination" issuer = "the_issuer" name_id = "the_name_id" session_index = "the_session_index" expected_xml = """<?xml version="1.0\" encoding="UTF-8"?><saml2p:LogoutRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://example.com/logout_destination" ID="hex_uuid" IssueInstant="2013-09-23T15:55:43.000Z" Version="2.0"><saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">the_issuer</saml2:Issuer><saml2:NameID xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">the_name_id</saml2:NameID><saml2p:SessionIndex>the_session_index</saml2p:SessionIndex></saml2p:LogoutRequest>""" logout_request = LogoutRequest(_clock=fake_clock, _uuid=fake_uuid_func, logout_target_url=logout_target_url, issuer=issuer, name_id=name_id, session_index=session_index) from xml.dom import minidom reparsed = minidom.parseString(logout_request.raw_xml) parsed_expected = minidom.parseString(expected_xml) print reparsed.toprettyxml() print parsed_expected.toprettyxml() eq(reparsed.toprettyxml(), parsed_expected.toprettyxml())