Commit Graph

854 Commits

Author SHA1 Message Date
Joe Grandja f8a9077d5a Generalize AuthorizationCodeAuthenticationProvider
The AuthorizationCodeAuthenticationProvider implements part of the
Authorization Code Grant flow as defined in
OAuth 2.0 Authorization Framework and OpenID Connect Core 1.0.
The implementation needs to be de-coupled to allow for better re-use and readability.
This commit introduces the AuthorizationGrantAuthenticator and extracts logic from
AuthorizationCodeAuthenticationProvider and provides different implementations
for OAuth 2.0 and OpenID Connect 1.0.

This re-factor is part of the work required for Issue gh-4513
2017-10-05 05:02:22 -04:00
Joe Grandja fb57111ecd redirect-uri property supports 'baseRedirectUrl' uri variable
Fixes gh-4589
2017-10-02 15:29:03 -04:00
Joe Grandja 66647070ab Default login page supports Iterable<ClientRegistration>
Fixes gh-4596
2017-09-29 19:54:17 -04:00
Rob Winch 99f06ca58c HttpSecurity invokes configure(this)
Issue gh-4542
2017-09-29 16:04:47 -05:00
Rob Winch b3bd5ba946 Add Reactive HttpSecurity.addWebFilterAt
Fixes gh-4542
2017-09-29 16:04:35 -05:00
Rob Winch 737c48de06 Polish 2017-09-29 14:13:02 -05:00
Joe Grandja b9258aa6ee Make AuthorizationRequestUriBuilder optional
Fixes gh-4577
2017-09-28 16:43:11 -04:00
Joe Grandja 9a8ddebc94 Use param matching for Authorization Response
Fixes gh-4576
2017-09-28 10:21:01 -04:00
Joe Grandja 8448a54678 Remove ClientRegistrationRepository.getRegistrations()
Fixes gh-4582
2017-09-28 07:02:59 -04:00
Joe Grandja b463f8e6b5 Remove httpSecurity.oauth2Login().userInfoEndpoint().userNameAttributeName()
Related gh-4580
2017-09-27 15:39:39 -04:00
Joe Grandja 814742fef6 Rename ClientRegistration.clientAlias -> registrationId
Fixes gh-4575
2017-09-27 09:14:55 -04:00
Joe Grandja 38be35677d Add userNameAttributeName to ClientRegistration
Fixes gh-4580
2017-09-26 21:55:19 -04:00
Joe Grandja 0e9b2807bf Split up NimbusOAuth2UserService
Fixes gh-4447
2017-09-26 11:32:49 -04:00
Rob Winch 6d26b86792 Add UserDetailsRepositoryResourceFactoryBean.fromString
Fixes gh-4566
2017-09-22 20:18:59 -05:00
Rob Winch a4c2073bcd Add UserDetailsManagerResourceFactoryBean.fromString
Fixes gh-4567
2017-09-22 20:18:59 -05:00
Rob Winch bc99f8aff3 Add UserDetailsResourceFactoryBean.fromString
Fixes gh-4568
2017-09-22 20:18:59 -05:00
Stephan Schroevers 9e719bc313 Drop the `aopalliance:aopalliance` dependency
As of Spring 4.3 RC1 the `org.aopalliance` interfaces are once again bundled
with `spring-aop` [1]. Moreover, all modules with a dependency on
`aopalliance:aopalliance` directly or indirectly also depend on `spring-aop`.

This change drops the `aopalliance:aopalliance` dependency in all places it's
declared. Where applicable an explicit dependency on `spring-aop` was added in
its place. (This dependency was already present in most places; in one case the
module didn't require `aopalliance:aopalliance` in the first place.)

The documentation is updated accordingly.

[1] https://jira.spring.io/browse/SPR-13984
2017-09-22 11:11:04 -05:00
Joe Grandja 8521ca8f94 Polish gh-4560 2017-09-21 17:21:41 -04:00
Joe Grandja baa3b6f258 Add utility for loading properties of client types
Fixes gh-4560
2017-09-20 22:50:19 -04:00
Rob Winch 8a66d0c78d Polish PermissionEvaluator Autowired into Web Security
Issue gh-4077
2017-09-18 16:53:19 -05:00
Craig Andrews 3bf6bf10de Configure permissionEvaluator and roleHierarchy by default
Implementations of AbstractSecurityExpressionHandler (such as the very commonly used DefaultWebSecurityExpressionHandler) get PermissionEvaluator and RoleHierarchy from the application context (if the application context is provided, and exactly one of such a bean exists in it). This approach matches that used in GlobalMethodSecurityConfiguration, making everything in Spring Security work the same way (including WebSecurity).

Issue gh-4077
2017-09-18 16:35:16 -05:00
Rob Winch f8ee9944ff Copyright date range 2017-09-18 11:18:46 -05:00
Rob Winch 1f4082e754 Fix copyright lines 2017-09-18 11:11:25 -05:00
Rob Winch 01d4387f56 Fix empty lines in copyright 2017-09-18 10:53:04 -05:00
Rob Winch 3ecf3ea034 Fix double * in Copyright headers 2017-09-18 10:47:26 -05:00
Rob Winch e14af37775 Add LogoutWebFilter
Fixes gh-4539
2017-09-13 16:43:04 -05:00
Rob Winch 426e24c18e Polish
Formatting changes
2017-09-13 15:31:32 -05:00
Joe Grandja 65b968f04a Move servlet-specific classes to 'web' package
Fixes gh-4366
2017-09-13 16:13:32 -04:00
Rob Winch 0a36359f11 WebFlux HTTP Basic & Form Login Sessions
By default both HTTP Basic and form log are enabled. Now HTTP Session will
not be used for HTTP Basic, but will be for form log in.
2017-09-13 14:47:44 -05:00
Rob Winch 3d745e63f6 HttpSecurityConfiguration applies all defaults
HttpSecurity headers is off by default and relies on
HttpSecurityConfiguration to enable it. This is more consistent with the
other operators
2017-09-12 22:07:12 -05:00
Rob Winch b5edb58050 Polish reactive config
Code Checkstyle fixes
2017-09-12 21:56:09 -05:00
Rob Winch 8b32b8db74 Polish
HeadersBuilder build is protected
2017-09-12 21:51:26 -05:00
Rob Winch d93c774691 Add FormLogin Configuration
Fixes gh-4537
2017-09-12 20:40:56 -05:00
Rob Winch a0a0a32bda Add WebTestClient HtmlUnit Support
Fixes gh-4534
2017-09-12 20:40:56 -05:00
Rob Winch 8d997fd079 Remove DefaultAuthenticationSuccessHandler
We always need to save the user after authentication, so it should be
part of AuthenticationWebFilter

Fixes gh-4524
2017-09-12 20:40:56 -05:00
Joe Grandja 4ff0b52f74 Remove HttpClientConfig
Issue gh-4478
2017-09-12 21:03:40 -04:00
Rob Winch d9bad2bc9d Mono.currentContext()->subscriberContext()
Fixing refactoring by Reactor
2017-09-01 17:20:47 -05:00
Rob Winch be0081290b EnableWebFluxSecurity uses PasswordEncoder Bean 2017-08-30 10:02:00 -05:00
Rob Winch 9f2ea90f0d Polish HttpSecurity
Code Style fixes
2017-08-29 20:34:20 -05:00
Rob Winch 51ad53f76a Remove Optional from Reactive HttpSecurity 2017-08-29 20:30:04 -05:00
Rob Winch 20befc3702 Support .and() in Reactive HttpBasic & HeaderBuilder 2017-08-29 20:17:56 -05:00
Rob Winch c4917f359a Fix for Reactor Refactor
- contextStart -> subscriberContext
2017-08-29 08:24:55 -05:00
Joe Grandja bc6be86aec Add in-memory AccessTokenRepository
Fixes gh-4508
2017-08-23 17:18:35 -04:00
Joe Grandja 91b0bd4ba5 Provide oauth2login.tokenEndpoint config
Fixes gh-4506
2017-08-23 17:18:01 -04:00
Joe Grandja c06975080f Allow configuring oauth2 authentication handlers
Fixes gh-4472
2017-08-23 17:17:34 -04:00
Joe Grandja 93c2b2533e Allow configuring request paths for oauth2 filters
Fixes gh-4473
2017-08-23 17:17:01 -04:00
Rob Winch 416ff3c77a Add EnableReactiveMethodSecurity
Issue gh-4496
2017-08-17 16:42:01 -05:00
Rob Winch b0b9b32c0c Add AuthenticationReactorContextFilter
Fixes gh-4501
2017-08-17 16:42:01 -05:00
Rob Winch e16b8e7976 Fix logback-test.xml 2017-08-17 16:42:01 -05:00
Rob Winch f3737b61e8 Add logback-classic as test dependency 2017-08-17 15:42:39 -05:00
Rob Winch efc3cadd43 Fixed Circular Bean References in Java Config
Fixes gh-4489
2017-08-09 16:24:01 -05:00
Rob Winch bfaead6f68 Removal of ParsingPathMatcher
Changes needed for the removal of ParsingPathMatcher in Spring Framework

b1440b6816 (diff-972650c759c249004b9725f94b570db3R156)
2017-08-02 11:11:11 -05:00
Joe Grandja c872499eee Enable custom configuration for HTTP client
Fixes gh-4477
2017-07-28 16:43:44 -04:00
Rob Winch 9b7883fe10 Add WEB_FILTER_CHAIN_FILTER_ORDER
Fixes gh-4475
2017-07-27 21:02:38 -05:00
Joe Grandja 96ae0fe8f8 Expose configuration for authorities mapping
Fixes gh-4409
2017-07-12 17:35:16 -04:00
Joe Grandja 9cfb890207 Use id_token for user authentication
Fixes gh-4410
2017-07-07 12:44:26 -04:00
Rob Winch 0e100be333 Fix Groovy 2.5 Compile Errors
Fixes gh-4415
2017-06-22 13:31:21 -05:00
Rob Winch 8130965259 Fixes for changes in SPR-15657
Fixes gh-4408
2017-06-20 16:42:24 -05:00
Rob Winch ca6348800e HttpSecurity.authorizeExchange() allows Method Chaining
Fixes gh-4397
2017-06-15 15:50:30 -05:00
Rob Winch 9d19b7337e Ensure Unique Names
Issue: gh-4394
2017-06-15 13:00:59 -05:00
Rob Winch fda0220fad Provide default reactive HttpSecurity
Fixes gh-4396
2017-06-15 13:00:19 -05:00
Rob Winch 9141a8a7c0 Add Multiple Reactive HttpSecurity
Fixes gh-4395
2017-06-15 13:00:19 -05:00
Rob Winch 406e1e6951 Extract out HttpSecurityConfiguration
Fixes gh-4394
2017-06-15 13:00:19 -05:00
stonio 335a01577a Typo "he" -> "the" 2017-06-15 12:47:41 -05:00
Rob Winch 30132892a0 Polish UserDetailsResourceFactoryBean Support
Issues: gh-4380 gh-4381 gh-4382
2017-06-13 15:15:21 -05:00
Rob Winch 337317a060 WebFlux now uses ParsingPathMatcher
Fixes gh-4388
2017-06-09 22:25:45 -05:00
Rob Winch 6428cb411e Add UserDetailsRepositoryResourceFactoryBean
Add the ability to easily create a UserDetailsRepository from a Properties
in the standard Spring Security user format.

Fixes gh-4382
2017-06-09 16:07:18 -05:00
Rob Winch 4cb77e5386 Add UserDetailsManagerResourceFactoryBean
Add the ability to easily create a UserDetailsManager from a Properties
in the standard Spring Security user format.

Fixes gh-4381
2017-06-09 16:07:18 -05:00
Rob Winch 256d14ede0 Add UserDetailsResourceFactoryBean
Add the ability to create a Collection<UserDetails> from a Properties
Resource using the standard Spring Security user format.

Fixes gh-4380
2017-06-09 16:07:18 -05:00
Rob Winch d09fb5b500 Move UserDetailsRepository to core.userdetails
Fixes gh-4383
2017-06-09 16:07:09 -05:00
Joe Grandja 6c0ecea494 Use java.util.Function instead of Converter
Fixes gh-4323
2017-06-01 17:25:39 -04:00
Rob Winch e5eda24054 Add ServerWebExchangeMatcherEntry 2017-05-31 16:13:20 -05:00
Joe Grandja 68368c87ca Resolve compile errors -> WebTestClient methods removed
Fixes gh-4355
2017-05-25 11:14:29 -04:00
Rob Winch bc141febdb Demo mock support with RouterFunction 2017-05-23 16:29:30 -05:00
Thomas Darimont 9e6b10ce46 Fix JavaDoc for HeadersConfigurer
Corrected copy-paste error.
2017-05-22 00:32:19 +02:00
Rob Winch 247635ed92 WebFluxSecurityConfiguration defaults HTTP Basic
Fixes gh-4346
2017-05-19 21:50:06 -05:00
Rob Winch 1cec497a50 Add method chaining for AuthorizeExchangeBuilder
Fixes gh-4345
2017-05-19 21:25:50 -05:00
Rob Winch 0428cdd934 Add @EnableWebFluxSecurity
Fixes gh-4344
2017-05-19 21:11:42 -05:00
Rob Winch d81b436e5d Remove pom.xml from build
Gradle is easy enough to import into IDEs, so pom.xml should no
longer be necessary.

This commit removes the pom.xml files from the build.

Fixes gh-4283
2017-05-11 14:32:36 -05:00
Vedran Pavic 85719fcd64 Use Base64 implementation provided by Java 8 2017-05-10 00:27:36 -05:00
Rob Winch b4f2777755 Add WebFlux
Fixes gh-4128
2017-05-10 00:13:02 -05:00
Joe Grandja 829c386756 Add support for OAuth 2.0 Login
Fixes gh-3907
2017-04-28 10:58:59 -04:00
Rob Winch dd6fc48dd8 Standardize Build
The build now uses spring build conventions to simplify the build

Fixes gh-4284
2017-04-21 10:55:05 -05:00
Rob Winch 5a65da400d Use ReflectionTestUtils rather than Whitebox
This is better because it no longer uses Mockito's internal API

Fixes gh-4305
2017-04-21 10:54:58 -05:00
Joe Grandja 2ce174dbf0 Update poms to 5.0.0.BUILD-SNAPSHOT 2017-04-07 16:49:50 -04:00
Rob Winch d2524eadfc Update poms to new to SNAPSHOT version 2017-03-02 09:20:34 -06:00
Spring Buildmaster 081f0c4d94 Release version 4.2.2.RELEASE 2017-03-02 07:29:42 +00:00
Rob Winch f3edaa673a Fix SecurityNamespaceHandler Version Error Message
Fixes gh-4210
2017-03-02 00:25:51 -06:00
Joris Kuipers 546d44d6e7 Fix NPE in WebSocketMessageBrokerSecurityBeanDefinitionParser
Fixes gh-4112
Closes gh-4194
2017-03-01 23:58:02 -06:00
Kazuki Miyahara 2ac51c9c7f Fix class name in comment 2017-03-01 23:31:32 -06:00
Rob Winch 9c03571bbb Use message in all Assert
This ensures compatibility with Spring 5.

Fixes gh-4193
2017-01-30 19:58:24 -06:00
Spring Buildmaster 7a7ce11ebb Release version 4.2.1.RELEASE 2016-12-21 17:23:28 +00:00
Rob Winch fc516b55a6 Fix Build Against Spring 5.0.0.BUILD-SNAPSHOT
Change Bean definition to static to avoid SPR-12646

Fixes gh-4150
2016-12-08 15:54:46 -06:00
Johnny Lim f94399cff9 Polish 2016-11-17 09:49:41 -06:00
Spring Buildmaster 24fcb6c45a Release version 4.2.0.RELEASE 2016-11-09 23:42:11 +00:00
Eddú Meléndez 23294c4c57 Add Referrer-Policy header support
Fixes gh-4110
2016-11-08 13:21:35 -06:00
Spring Buildmaster 97b4cb0b73 Release version 4.2.0.RC1 2016-10-26 02:49:23 +00:00
Rob Winch df3b8bc284 Add Spring MVC test for override cache control
Issue gh-3975
2016-10-24 15:57:32 -05:00
Rob Winch f432c04111 Create UserBuilder
This commit creates a UserBuilder and updates samples to use it. We do not
leverate it for JdbcUserDetailsManager because it requires the schema to
be created which is difficult with a single bean definition and
unpredicatble ordering. For this, it is still advised to use
AuthenticationManagerBuilder

Fixes gh-4095
2016-10-21 16:42:03 -05:00
Rob Winch 94e580fe64 Add Support for Custom Default Configuration in Web Security
Fixes gh-4102
2016-10-19 16:15:56 -05:00