26 lines
1.1 KiB
Plaintext
26 lines
1.1 KiB
Plaintext
from quixote import get_request, get_response, redirect, get_field, get_publisher
|
|
from qommon import get_cfg, get_logger
|
|
from qommon.misc import get_provider_key
|
|
|
|
import authentic.login_token as login_token
|
|
import authentic.liberty.saml as saml
|
|
from authentic.misc import redirect_with_return_url
|
|
|
|
class NewRootDirectory(saml.RootDirectory):
|
|
def invoke_login(self, login, query):
|
|
request_id = login.request.iD
|
|
provider_key = get_provider_key(login.remoteProviderId)
|
|
provider_cfg = get_cfg('providers').get(provider_key, {})
|
|
|
|
login_url = get_request().environ['SCRIPT_NAME'] + '/login'
|
|
token = login_token.LoginToken(request_id)
|
|
token.query = query
|
|
token.store()
|
|
args = [('okURL', '/saml/continueSSO?id=%s' % request_id),
|
|
('cancelURL', '/saml/failSSO?id=%s' % request_id),
|
|
('LoginToken', request_id),
|
|
('service',provider_key)]
|
|
if provider_cfg.get('theme'):
|
|
args.append(('theme', providers_cfg['theme']))
|
|
return redirect_with_return_url(login_url, args)
|