def test_static_client_registration(server_url, provider_info, browser): redirect_uri = "http://localhost:8090" browser.get(server_url + "/client_registration") new_url_input = browser.find_element_by_xpath("/html/body/div/div/div[1]/div[1]/form/div/input") new_url_input.send_keys(redirect_uri) add_btn = browser.find_element_by_xpath("/html/body/div/div/div[1]/div[1]/form/div/span/button") add_btn.click() submit_btn = browser.find_element_by_xpath("/html/body/div/div/div[2]/button") submit_btn.click() client_credentials = get_client_credentials_from_page(browser) args = { "client_id": client_credentials["client_id"], "scope": "openid", "response_type": "id_token", "redirect_uri": redirect_uri, "state": "state0", "nonce": "nonce0" } auth_req = AuthorizationRequest(**args) request = auth_req.request(provider_info["authorization_endpoint"]) browser.get(request) fill_login_details(browser) urlencoded_resp = urlparse(browser.current_url).fragment auth_resp = AuthorizationResponse().from_urlencoded(urlencoded_resp) idt = IdToken().from_jwt(auth_resp["id_token"], verify=False) assert browser.current_url.startswith(redirect_uri) assert auth_resp["state"] == "state0" assert idt["nonce"] == "nonce0"
def test_dynamic_client(provider_info, browser): redirect_uri = "http://localhost" # Dynamic registration reg_req = RegistrationRequest(**{"redirect_uris": [redirect_uri], "response_types": ["id_token"]}) resp = requests.post(reg_req.request(provider_info["registration_endpoint"])) reg_resp = RegistrationResponse().from_json(resp.text) # Authentication auth_req = AuthorizationRequest( **{"client_id": reg_resp["client_id"], "scope": "openid", "response_type": "id_token", "redirect_uri": redirect_uri, "state": "state0", "nonce": "nonce0"}) browser.get(auth_req.request(provider_info["authorization_endpoint"])) fill_login_details(browser) # Authentication response urlencoded_resp = urlparse(browser.current_url).fragment auth_resp = AuthorizationResponse().from_urlencoded(urlencoded_resp) idt = IdToken().from_jwt(auth_resp["id_token"], verify=False) assert browser.current_url.startswith(redirect_uri) assert auth_resp["state"] == "state0" assert idt["nonce"] == "nonce0"
def test_static_client_registration(server_url, provider_info, browser): redirect_uri = "http://localhost:8090" browser.get(server_url + "/client_registration") new_url_input = browser.find_element_by_xpath( "/html/body/div/div/div[1]/div[1]/form/div/input") new_url_input.send_keys(redirect_uri) add_btn = browser.find_element_by_xpath( "/html/body/div/div/div[1]/div[1]/form/div/span/button") add_btn.click() submit_btn = browser.find_element_by_xpath( "/html/body/div/div/div[2]/button") submit_btn.click() client_credentials = get_client_credentials_from_page(browser) args = { "client_id": client_credentials["client_id"], "scope": "openid", "response_type": "id_token", "redirect_uri": redirect_uri, "state": "state0", "nonce": "nonce0" } auth_req = AuthorizationRequest(**args) request = auth_req.request(provider_info["authorization_endpoint"]) browser.get(request) fill_login_details(browser) urlencoded_resp = urlparse(browser.current_url).fragment auth_resp = AuthorizationResponse().from_urlencoded(urlencoded_resp) idt = IdToken().from_jwt(auth_resp["id_token"], verify=False) assert browser.current_url.startswith(redirect_uri) assert auth_resp["state"] == "state0" assert idt["nonce"] == "nonce0"