22 lines
943 B
Python
22 lines
943 B
Python
import json
|
|
import importlib
|
|
session_manager = importlib.import_module('device-bound-session-credentials.session_manager')
|
|
|
|
def main(request, response):
|
|
test_session_manager = session_manager.find_for_request(request)
|
|
|
|
use_single_header = json.loads(request.body.decode('utf-8')).get("useSingleHeader")
|
|
if use_single_header is None:
|
|
return (400, response.headers, "")
|
|
|
|
challenges = []
|
|
for session_id in session_manager.find_for_request(request).get_session_ids():
|
|
early_challenge = test_session_manager.get_early_challenge(session_id)
|
|
if early_challenge is not None:
|
|
challenges.append(("Sec-Session-Challenge", f'"{early_challenge}";id="{session_id}"'))
|
|
|
|
if use_single_header:
|
|
combined_challenges = [("Sec-Session-Challenge", ", ".join([challenge[1] for challenge in challenges]))]
|
|
return (200, combined_challenges, "")
|
|
else:
|
|
return (200, challenges, "")
|