From bde82f12d16e57b27b624af34b18ab1fa3e7e59d Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Wed, 11 Jul 2012 18:09:23 +0200 Subject: [PATCH] disco: first draft --- virtualenv/pffedportal/base/views.py | 2 + .../media/simple-disco-store/README.txt | 28 + .../media/simple-disco-store/debug.js | 6 + .../media/simple-disco-store/discoquery.js | 62 ++ .../simple-disco-store/doc/discoreadwrite.txt | 828 ++++++++++++++++++ .../doc/sstc-saml-idp-discovery.pdf | Bin 0 -> 245180 bytes .../simple-disco-store/jquery-1.7.2.min.js | 4 + .../simple-disco-store/jquery.cookie-1.1.js | 61 ++ .../media/simple-disco-store/jquery.qs.js | 19 + .../media/simple-disco-store/response.html | 24 + .../media/simple-disco-store/store.html | 52 ++ .../media/simple-disco-store/test.html | 27 + virtualenv/pffedportal/templates/login0.html | 51 +- 13 files changed, 1161 insertions(+), 3 deletions(-) create mode 100644 virtualenv/pffedportal/media/simple-disco-store/README.txt create mode 100644 virtualenv/pffedportal/media/simple-disco-store/debug.js create mode 100644 virtualenv/pffedportal/media/simple-disco-store/discoquery.js create mode 100644 virtualenv/pffedportal/media/simple-disco-store/doc/discoreadwrite.txt create mode 100644 virtualenv/pffedportal/media/simple-disco-store/doc/sstc-saml-idp-discovery.pdf create mode 100644 virtualenv/pffedportal/media/simple-disco-store/jquery-1.7.2.min.js create mode 100644 virtualenv/pffedportal/media/simple-disco-store/jquery.cookie-1.1.js create mode 100644 virtualenv/pffedportal/media/simple-disco-store/jquery.qs.js create mode 100644 virtualenv/pffedportal/media/simple-disco-store/response.html create mode 100644 virtualenv/pffedportal/media/simple-disco-store/store.html create mode 100644 virtualenv/pffedportal/media/simple-disco-store/test.html diff --git a/virtualenv/pffedportal/base/views.py b/virtualenv/pffedportal/base/views.py index a6ab93d..7b7ac33 100644 --- a/virtualenv/pffedportal/base/views.py +++ b/virtualenv/pffedportal/base/views.py @@ -75,6 +75,7 @@ def index(request): 'pfsense_session': pfsense_session, 'prefered_idp': request.session.get('prefered_idp', ''), 'mailform': mailform, + 'https_hostname': settings.HTTPS_HOSTNAME, }, context_instance=RequestContext(request)) # store prefered_idp in a cookie with a ten days ttl @@ -104,6 +105,7 @@ def login(request): {'default_idp': default_idp, 'idp_providers': get_idp_list_sorted(), 'mailform': mailform, + 'https_hostname': settings.HTTPS_HOSTNAME, }, context_instance=RequestContext(request)) diff --git a/virtualenv/pffedportal/media/simple-disco-store/README.txt b/virtualenv/pffedportal/media/simple-disco-store/README.txt new file mode 100644 index 0000000..8eae468 --- /dev/null +++ b/virtualenv/pffedportal/media/simple-disco-store/README.txt @@ -0,0 +1,28 @@ +Simple IdP Discovery Store and Query +==================================== + +How to use +---------- + +Copy this code in your web app. + +Place the response.html somewhere, let's say at http://sp.example.com/response.html. + +Add this: + + + + + + +And make the linked files accessible. + +Call this to get the globally stored preference: + + $.disco_query("http://sp.example.com/metadata", "http://disco.example.com/store", "http://sp.example.com/response.html", function (entity_id, auth) { + // do something with it + }); + +Call this to store your preference: + + $.disco_query("http://sp.example.com/metadata", "http://chosen_idp.example.com/metadata", "http://disco.example.com/store", "http://sp.example.com/response.html"); diff --git a/virtualenv/pffedportal/media/simple-disco-store/debug.js b/virtualenv/pffedportal/media/simple-disco-store/debug.js new file mode 100644 index 0000000..446de9b --- /dev/null +++ b/virtualenv/pffedportal/media/simple-disco-store/debug.js @@ -0,0 +1,6 @@ +debug = false; +function debug_alert(msg) { + if (debug) { + alert(msg); + } +} diff --git a/virtualenv/pffedportal/media/simple-disco-store/discoquery.js b/virtualenv/pffedportal/media/simple-disco-store/discoquery.js new file mode 100644 index 0000000..2964609 --- /dev/null +++ b/virtualenv/pffedportal/media/simple-disco-store/discoquery.js @@ -0,0 +1,62 @@ +(function () { + var C_ENTITY_ID = "entityID"; + var C_RETURN = "return"; + var C_POLICY = "policy"; + var C_RETURNIDPARAM = "returnIDParam"; + var C_IS_PASSIVE = "isPassive"; + var C_IDP_ENTITY_ID = "IdPentityID"; + var COOKIE_TIMEOUT_DAYS = 730; + + $.disco_query = function (entity_id, url, response_url, callback) { + var iframe = $('