Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configure OIDC end_session_endpoint #11218

Merged
merged 2 commits into from
Jun 3, 2024
Merged

Conversation

MarcialRosales
Copy link
Contributor

@MarcialRosales MarcialRosales commented May 13, 2024

Proposed Changes

Implements feature request #11103

Doc's PR -> rabbitmq/rabbitmq-website#1925

Types of Changes

What types of changes does your code introduce to this project?
Put an x in the boxes that apply

  • Bug fix (non-breaking change which fixes issue #NNNN)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause an observable behavior change in existing systems)
  • Documentation improvements (corrections, new content, etc)
  • Cosmetic change (whitespace, formatting, etc)
  • Build system and/or CI

Checklist

Put an x in the boxes that apply.
You can also fill these out after creating the PR.
If you're unsure about any of them, don't hesitate to ask on the mailing list.
We're here to help!
This is simply a reminder of what we are going to look for before merging your code.

  • I have read the CONTRIBUTING.md document
  • I have signed the CA (see https://cla.pivotal.io/sign/rabbitmq)
  • I have added tests that prove my fix is effective or that my feature works
  • All tests pass locally with my changes
  • If relevant, I have added necessary documentation to https://github.com/rabbitmq/rabbitmq-website
  • If relevant, I have added this change to the first version(s) in release-notes that I expect to introduce it

Further Comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution
you did and what alternatives you considered, etc.

@MarcialRosales MarcialRosales force-pushed the configure-oidc-endpoints branch 3 times, most recently from 09be5b4 to 86730b7 Compare May 22, 2024 12:45
@mergify mergify bot added the make label May 22, 2024
@MarcialRosales MarcialRosales force-pushed the configure-oidc-endpoints branch from 065cb62 to 9fef822 Compare May 22, 2024 15:03
@MarcialRosales MarcialRosales changed the title Configure all required OIDC endpoints Configure end_session_endpoint OIDC endpoints May 23, 2024
@MarcialRosales MarcialRosales requested review from pstack2021 and michaelklishin and removed request for pstack2021 May 23, 2024 10:03
@MarcialRosales MarcialRosales force-pushed the configure-oidc-endpoints branch from ad023f6 to 4c98e21 Compare May 23, 2024 10:25
@MarcialRosales MarcialRosales changed the title Configure end_session_endpoint OIDC endpoints Configure OIDC end_session_endpoint May 23, 2024
@MarcialRosales MarcialRosales marked this pull request as ready for review May 23, 2024 14:36
Copy link
Member

@michaelklishin michaelklishin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Dialyzer failure looks legit

  Proceeding with analysis...
oauth2_client.erl:22:29: The call oauth2_client:get_oauth_provider
         (OAuth2ProviderId :: binary(),
          ['token_endpoint']) will never return since the success typing is 
         ([any()],
          any()) -> 
          {'error', _} |
          {'ok',
           #oauth_provider{issuer ::
                               'none' | 'undefined' |
                               binary() |
                               maybe_improper_list(binary() |
                                                   maybe_improper_list(any(),
                                                                       binary() |
                                                                       []) |
                                                   byte(),
                                                   binary() | []),
                           token_endpoint ::
                               'none' | 'undefined' |
                               binary() |
                               maybe_improper_list(binary() |
                                                   maybe_improper_list(any(),
                                                                       binary() |
                                                                       []) |
                                                   byte(),
                                                   binary() | []),
                           authorization_endpoint ::
                               'none' | 'undefined' |
                               binary() |
                               maybe_improper_list(binary() |
                                                   maybe_improper_list(any(),
                                                                       binary() |
                                                                       []) |
                                                   byte(),
                                                   binary() | []),
                           end_session_endpoint ::
                               'none' | 'undefined' |
                               binary() |
                               maybe_improper_list(binary() |
                                                   maybe_improper_list(any(),
                                                                       binary() |
                                                                       []) |
                                                   byte(),
                                                   binary() | []),
                           jwks_uri ::
                               'none' | 'undefined' |
                               binary() |
                               maybe_improper_list(binary() |
                                                   maybe_improper_list(any(),
                                                                       binary() |
                                                                       []) |
                                                   byte(),
                                                   binary() | []),
                           ssl_options :: 'undefined' | [any()]}} and the contract is 
          ([any()], boolean()) ->
             {'ok', oauth_provider()} | {'error', any()}
 done in 0m0.53s
done (warnings were emitted)

oauth2_client:get_oauth_provider/2 expects a list according to its type spec and oauth2_client.erl:22 calls it with a single value as far as I can tell.

@MarcialRosales MarcialRosales force-pushed the configure-oidc-endpoints branch 3 times, most recently from 33a0671 to 2d7397f Compare May 24, 2024 14:44
@MarcialRosales MarcialRosales force-pushed the configure-oidc-endpoints branch from 2d7397f to 72ab194 Compare May 27, 2024 09:19
@michaelklishin michaelklishin merged commit 6c86442 into main Jun 3, 2024
18 checks passed
@michaelklishin michaelklishin deleted the configure-oidc-endpoints branch June 3, 2024 21:46
michaelklishin added a commit that referenced this pull request Jun 3, 2024
michaelklishin added a commit that referenced this pull request Jun 3, 2024
Configure OIDC end_session_endpoint  (backport #11218)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants