In the CAS implementation of OIDC, there is an issue with the handling of the response_mode parameter. According to the OIDC documentation, when response_mode is set to form_post, the response should be returned in the form of a POST request. However, the current implementation returns the response in the fragment format regardless of the response_mode value.
Environment:
Steps to Reproduce:
Expected Behavior:
According to the OIDC documentation, the response should be returned as a POST request when response_mode is set to form_post. The response should be delivered via an form POST, not as a URL fragment.
Actual Behavior:
Regardless of the response_mode value, the response is always returned as a URL fragment (#), instead of a POST request. This behavior is inconsistent with the OIDC documentation.
Additional Notes:
The tests in your repository (e.g., oidc-debugger-idtoken-login script) currently check for the url.hash from the browser, which is not the correct behavior for response_mode=form_post. The correct behavior should involve checking for a POST form submission, not a URL fragment.
Refer to the test script here: https://github.com/apereo/cas/blob/master/ci/tests/puppeteer/scenarios/oidc-debugger-idtoken-login/script.js#L28