-
Notifications
You must be signed in to change notification settings - Fork 3k
OIDC: stop modifying deprecated fields and setters on former config classes marked for removal #47457
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
Closed
michalvavrik
wants to merge
1
commit into
quarkusio:main
from
michalvavrik:feature/oidc-make-config-immutable
Closed
OIDC: stop modifying deprecated fields and setters on former config classes marked for removal #47457
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems to belong to the utility code, some properties here can not be even supported by this builder but by various sub-builders
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First of all, I can change it, IMHO this is just matter of opinion where this should be. I don't have problem to change it if you are certain.
Here is why I chose this place:
So there is really no other usages for this code outside of this builder. Why would we need them in a utility class?
We work with
OidcTenantConfig
, only thing that users can provide to Quarkus OIDC is that config, they cannot provideAuthentication
orRoles
etc. Yes, they can use individual builders, but once they want to buildOidcTenantConfig
, this code you are commenting on is applied.Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I hope I am not confusing you, but let me put it this way: with this PR we control all the entry points and if user changes
OidcTenantConfig
instance after they passed it to Quarkus OIDC code, it has no effect. Which means after we have immutable copy where we control these 2 changeable fields (user info and tenant enabled), we can only rely on methods and state of former config class fields will not be changed (because Quarkus OIDC won't do it and noone else can).That means we don't care what users do with individual builders, because we have one way how
OidcTenantConfig
is build.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@michalvavrik
The fact the test provider did it does not mean anyone would actually want to do it in the real application, why would they. And if they do, may be should fail instead, or log a message that the change happened and attempt to adapt... But it can bring so much complexity, without an obvious benefit, that I'm doubting we should do it