This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
authentic2-idp-ltpa/authentic2_idp_ltpa/views.py

23 lines
986 B
Python

from django.core.exceptions import ImproperlyConfigured
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.contrib.auth import REDIRECT_FIELD_NAME
from . import app_settings, utils, adapter
@login_required
def ltpa(request):
'''Ask for authentication then generate a cookie'''
next_url = request.REQUEST[REDIRECT_FIELD_NAME]
response = HttpResponseRedirect(next_url)
if app_settings.TOKEN_SECRET is None:
raise ImproperlyConfigured('missing TOKEN_SECRET')
secret = utils.decode_secret(app_settings.TOKEN_SECRET)
user = adapter.get_adapter().get_username(request)
token = utils.generate_domino_ltpa_token(user, secret, duration=app_settings.TOKEN_DURATION)
domain = app_settings.COOKIE_DOMAIN or request.META['HTTP_HOST'].split(':')[0]
response.set_cookie(app_settings.COOKIE_NAME, token, domain=domain,
httponly=app_settings.COOKIE_HTTP_ONLY)
return response