Commit Graph

382 Commits

Author SHA1 Message Date
Joe Grandja 2a867997e2 Polish gh-6415 2019-01-14 13:33:58 -05:00
Rafael Dominguez fe5f10e9a2 Extract the ID Token JwtDecoderFactory to enable user customization
This commit ensures that the JwtDecoderFactory is not a private field inside
the Oidc authentication provider by extracting this class and giving the
possibility to customize the way different providers are validated.

Fixes: gh-6379
2019-01-14 13:33:58 -05:00
Adrian Javorski dd45a49f02 Update JwtTimestampValidator.java
Changed MaxClockSkew variable to clockSkew to simplify the name.

Fixes gh-6380
2019-01-14 10:33:38 -07:00
Joe Grandja f234a5fbdb ID Token validation supports clock skew
Fixes gh-5839
2019-01-09 16:03:13 -05:00
Joe Grandja d878dbf30e Polish gh-6349 2019-01-09 10:15:02 -05:00
Rafael Dominguez 057ed616c4 Improve error messages in OidcIdTokenValidator
This commit ensures that error messages contain more specific
information regarding the reported error.

Fixes: gh-6323
2019-01-09 10:15:02 -05:00
Johnny Lim c94f13a971 Polish tests 2019-01-08 11:16:22 -06:00
Joe Grandja 673a2adf26 Polish oauth2 client ExchangeFilterFunction's
Fixes gh-6355
2019-01-07 14:39:25 -05:00
Joe Grandja 993e11dcd3 Polish gh-6127 2019-01-07 13:50:17 -05:00
Warren Bailey 1c9ab9197e When expired retrieve new Client Credentials token.
Once client credentials access token has expired retrieve a new token from the OAuth2 authorization server.
These tokens can't be refreshed because they do not have a refresh token associated with. This is standard behaviour for Oauth 2 client credentails

Fixes gh-5893
2019-01-07 13:50:17 -05:00
Josh Cummings d77b12d229 authorization_uri Uses UriComponentsBuilder
Because of this, authorization_uri can now be a fully-qualified url.

Fixes: gh-5760
2018-12-21 13:23:47 -07:00
Joe Grandja 9c0d78da71 Extract OidcTokenValidator to an OAuth2TokenValidator
Fixes gh-5930
2018-12-21 11:06:40 -05:00
Joe Grandja 12f320851d Set openid scope in OAuth2LoginTests 2018-12-21 09:24:55 -06:00
Joe Grandja 8f4f52edb9 Support configurable JwtDecoder for IdToken verification
Fixes gh-5717
2018-12-21 09:24:55 -06:00
Eric Deandrea 0f7dff3774 Introduce ReactiveJwtAuthenticationConverter
Some changes based on PR comments

Fixes gh-6273
2018-12-17 14:12:53 -07:00
Josh Cummings 1bfa38b1bd
Validate Scopes in ClientRegistrationBuilder
Fixes: gh-6256
2018-12-14 10:41:29 -07:00
shraiysh e25bea2cf7 Author: Shraiysh Vaishay cs17btech11050@iith.ac.in
Add WebClientReactiveAuthorizationCodeTokenResponseClient.setWebClient

Fixes gh-6182
2018-12-06 11:18:39 -06:00
Josh Cummings 566bc6a6e1
Test OpenID Discovery with Trailing Slash
Fixes gh-6234
2018-12-05 10:54:30 -07:00
Nicolas Le Bas ba8a337f9a Accept a case-insensitive "Bearer" keyword
The Authorization header was matched for OAuth2
against the "Bearer" keyword in a case sensitive
fashion.
According to RFC 2617, it should be case insensitive
and some oauth clients (including some earlier
versions of spring-security) expect it so.

This is the reactive counterpart to commit
63f2b6094f .

Fixes gh-6195
2018-12-02 09:32:27 -05:00
Nicolas Le Bas 63f2b6094f The "Bearer" keyword should be case-insensitive
The Authorization header was matched for OAuth2
against the "Bearer" keyword in a case sensitive
fashion.
According to RFC 2617, it should be case insensitive
and some oauth clients (including some earlier
versions of spring-security) expect it so.
2018-11-28 19:34:47 -07:00
jer051 fdc81822ec Add WebClientReactiveClientCredentialsTokenResponseClient setWebClient
Added the ability to specify a custom WebClient in
WebClientReactiveClientCredentialsTokenResponseClient.
Also added testing to ensure the custom WebClient is not null and is
used.

Fixes: gh-6051
2018-11-28 15:44:36 -06:00
Josh Cummings 2a8233d035
Remove PowerMock from oauth2-core and oauth2-jose
Issue: gh-6025
2018-11-20 14:02:10 -07:00
Josh Cummings 80e13bad41
Remove PowerMock from oauth2-client
Issue: gh-6025
2018-11-19 18:09:00 -07:00
Josh Cummings 39933b10ff
Add scopes method to TestOAuth2AccessTokens
Issue: gh-6025
2018-11-19 18:06:40 -07:00
dperezcabrera f6414e9a52 Make InMemory*ClientRegistrationRepository Consistent
The previous builders with the list argument were inconsistent with their
respective builders of var args.
2018-11-19 15:09:30 -06:00
Rafael Dominguez e1d68e4f6b WebClientReactiveClientCredentialsTokenResponseClient.getTokenResponse expects 2xx http status code
This ensures that token response is only extracted when ClientResponse has a successful status

Fixes: gh-6089
2018-11-19 10:50:33 -06:00
Josh Cummings 1ea73e7d8e Jwt Decoder Local Key Configuration
Adds support for configuring Resource Server DSL with a local public
key.

Fixes: gh-5131
2018-11-16 13:07:19 -06:00
Rafael Dominguez 75a2c2b729 OAuth2AccessTokenResponseBodyExtractor supports Object values
This commit ensures the token response is parsed correctly if the values are not a String.

Fixes: gh-6087
2018-11-15 13:23:36 -06:00
Josh Cummings d28e32b000 NimbusJwtDecoder Builder
A Builder to simply common construction patterns for NimbusJwtDecoder

Issue: gh-6010
2018-11-14 15:53:47 -06:00
Josh Cummings fbcf48cea0 Low-level Nimbus Jwt Decoder
Introduces a JwtDecoder which takes a raw Nimbus JWTProcessor
configuration.

Fixes: gh-5648
2018-11-14 15:53:47 -06:00
Josh Cummings ae74f22e30 Reactive Jwt Claim Set Converter Support
Exposes setClaimSetConverter on NimbusReactiveJwtDecoder, lining it up
with the same support on NimbusJwtDecoder.

Fixes: gh-6015
2018-11-13 15:31:08 -06:00
Josh Cummings 19649db9ce
Leave Issuer As String
Since StringOrURI is a valid issuer, MappedJwtClaimSetConverter and
JwtIssuerValidator no longer assume it.

Issue: gh-6073
2018-11-13 11:39:15 -07:00
Josh Cummings c70b65c5df
Favor URL.toExternalForm
Converts URLs to Strings before comparing them. Uses toString(),
which delegates to toExternalForm().

Fixes: gh-6073
2018-11-13 08:20:18 -07:00
Josh Cummings a32d19ec7d
Polish NimbusReactiveJwtDecoderTests
Issue: gh-5650
2018-11-12 15:04:00 -07:00
Joe Grandja a96893a42a Remove charset from Accept header in UserInfo request
Fixes gh-6017
2018-10-25 12:56:45 -04:00
Vedran Pavic e1b095df32 Allow in-memory client registration repos to be constructed with a map
Fixes gh-5918
2018-10-18 14:07:12 -04:00
Josh Cummings 22bd8f1c1f Reactive Jwt Authentication Converter Support
Fixes: gh-5092
2018-10-15 11:55:12 -05:00
Joe Grandja 07d2e43d7a Deprecate NimbusAuthorizationCodeTokenResponseClient
Fixes gh-5954
2018-10-15 09:01:19 -04:00
Rob Winch 725b3b5482 Fix OAuth2AuthorizationCodeGrantWebFilter works w/ /{action/
Issue: gh-5856
2018-09-20 21:39:09 -05:00
Joe Grandja 9565e90b6e Remove oauth2-oidc-sdk dependency from oauth2-jose module
Fixes gh-5891
2018-09-20 15:20:11 -04:00
Joe Grandja d46f83caf4 Ensure consistent matching of redirect_uri
Fixes gh-5890
2018-09-20 14:30:41 -04:00
Josh Cummings 77fa495860
DelegatingOAuth2TokenValidator Varargs Constructor
Fixes: gh-5889
2018-09-20 10:45:51 -06:00
Rob Winch 410f6bae1a Fix ServerOAuth2AuthorizedClientExchangeFilterFunctionTests Merge
Issue: gh-5872
2018-09-19 11:53:21 -05:00
Rob Winch dcbf762a0b WebClient OAuth2 Support for defaultClientRegistrationId
Fixes: gh-5872
2018-09-19 11:47:04 -05:00
Joe Grandja e8d8eb59bf Make OAuth2AuthorizedClient Serializable
Fixes gh-5757
2018-09-19 10:47:30 -04:00
Joe Grandja 2c078c5dd9 Remove expiresAt constructor-arg in OAuth2RefreshToken
Fixes gh-5854
2018-09-19 10:47:30 -04:00
Rob Winch cc8935e904 Fix Reactive OIDC to add refresh token
Fixes: gh-5858
2018-09-17 21:21:36 -05:00
Rob Winch 72301e548a Reactive OAuth2 DSL Customizations
Fixes: gh-5855
2018-09-17 21:21:36 -05:00
Rob Winch 385bdfc055 OAuth2AuthorizationCodeGrantWebFilter works with /{action}/
This ensures that the same URL can work for both log in and
authorization code which prevents having to create additional registrations
on the client and potentially on the server (GitHub only allows a single
valid redirect URL).

Fixes: gh-5856
2018-09-17 21:21:36 -05:00
Joe Grandja ed9cd478ba Polish
Issue gh-5776
2018-09-12 11:57:53 -04:00