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

Implement Client Authentication #39

Closed
jgrandja opened this issue Apr 20, 2020 · 6 comments
Closed

Implement Client Authentication #39

jgrandja opened this issue Apr 20, 2020 · 6 comments
Assignees
Labels
type: enhancement A general enhancement
Milestone

Comments

@jgrandja
Copy link
Collaborator

jgrandja commented Apr 20, 2020

The client must authenticate when calling the authorization server's token endpoint.

The OAuth2ClientAuthenticationFilter should be implemented as a Filter. The initial implementation should support HTTP Basic only.

Implementation Requirements

  • the Filter should process requests for the (default) path /oauth2/token and if HTTP Basic credentials are available in the request
  • the OAuth2ClientAuthenticationToken should be passed to the AuthenticationManager
  • the AuthenticationManager should be composed of OAuth2ClientAuthenticationProvider (in a later story)
  • the OAuth2ClientAuthenticationProvider should use the RegisteredClientRepository Implement Client Registration Model / Repository #40 to look up and validate the client credentials
  • the RegisteredClient should be returned in a new OAuth2ClientAuthenticationToken if the authentication succeeds
  • the Filter should save the OAuth2ClientAuthenticationToken in the SecurityContext
  • javadoc class and public methods
  • Unit tests

Specification References

2.3. Client Authentication
3.1. Token Endpoint
4.1. Authorization Code Grant
4.1.3. Access Token Request

@jgrandja jgrandja changed the title Client Authentication Methods Epic: Client Authentication Methods Apr 20, 2020
@jgrandja jgrandja added the status: on-hold We can't start working on this issue yet label Apr 23, 2020
@jgrandja jgrandja changed the title Epic: Client Authentication Methods Implement Client Authentication Filter Apr 24, 2020
@jgrandja jgrandja added this to the 0.0.1 milestone Apr 24, 2020
@jgrandja jgrandja changed the title Implement Client Authentication Filter Implement Client Authentication Apr 24, 2020
@jgrandja jgrandja added status: ideal-for-contribution An issue that we actively are looking for someone to help us with type: enhancement A general enhancement and removed status: on-hold We can't start working on this issue yet labels Apr 24, 2020
@pkostrzewa
Copy link

Can I work on this one?

@jgrandja
Copy link
Collaborator Author

Thank you @pkostrzewa. The issue is yours.

@jgrandja jgrandja removed the status: ideal-for-contribution An issue that we actively are looking for someone to help us with label Apr 26, 2020
@paurav-munshi
Copy link
Contributor

@jgrandja

Does this relates to #5 ? If that is the case I have added a PR for that. Its still in progress but the code / design pattern from that PR can be used.

@jgrandja
Copy link
Collaborator Author

@paurav-munshi Please see my comment

@pkostrzewa
Copy link

pkostrzewa commented Apr 27, 2020

@jgrandja I have basic implementation. Should I still work on it or leave this in favor of #64?

@jgrandja
Copy link
Collaborator Author

jgrandja commented Apr 27, 2020

@pkostrzewa

I have basic implementation. Should I still work on it or leave this in favor of #64?

Please continue. The goal of #64 was to flush out the design for the client_credentials flow sample. This issue will address the authorization_code flow, and eventually be used for the client_credentials grant when we get to that feature at a later point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement A general enhancement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants