Releases: spring-projects/spring-security
Releases · spring-projects/spring-security
5.3.0.RELEASE
⭐ New Features
- Update What's New Section #8062
 - Document JdbcOAuth2AuthorizedClientService #8061
 - Add oauth2login xml sample #8060
 - Update doc diagram palette to use sans-serif font #8057
 - Add SecurityFilterChain Figure #8055
 - oauth2Client Test Support should allow configuration of principal name #8054
 - Add Kotlin Configuration section to docs #8051
 - Add anchors to SAML 2.0 documentation #8049
 - Update UserDetailsService Docs #8048
 - Add Figures to Basic Authentication Docs #8039
 - Add Link to DispatcherServlet in Filter Review Doc #8036
 - Add Figures to Form Log In Docs #8035
 - Add Figure for AuthenticationEntryPoint Docs #8030
 - Add ProviderManager to Docs #8029
 - Custom ServerHttpHeadersWriter to HeaderSpec #8028
 - Add hasRole(String) to authorizeRequests in Kotlin DSL #8023
 - Add missing @FunctionalInterface in oauth2 modules #8020
 - Provide configurable Clock in OidcIdTokenValidator #8019
 - Add OAuth2AuthorizeRequest.Builder.principal(String) #8018
 - Extract AuthenticationManager Docs #8006
 - Extract SecurityContextHolder, SecurityContext, Authentication, and GrantedAuthority Docs #8005
 - Add AbstractAuthenticationProcessingFilter Docs #8004
 - Extract AuthenticationEntryPoint Docs #8003
 - Extract ExceptionTranslationFilter Docs #8002
 - Extract FilterSecurityInterceptor Docs #8001
 - Use Color Palette that is Accessible for Color Blind #8000
 - Create a palette.odg #7999
 - Add Numbers Icons #7998
 - Instantiate exceptions lazily #7996
 - JwtIssuerReactiveAuthenticationManagerResolver eagerly creates Exceptions #7995
 - OAuth2AuthorizationRequest.Builder should configure additional parameters with a consumer #7993
 - Add OAuth2Authorization success/failure handlers #7986
 - Refactor Duplicate Security Filter Chain Doc #7979
 - Fix Asciidoctor Warnings #7973
 - Use Kotlin DSL Marker Annotations to prevent scope leaking #7971
 - Add JwtClaimValidator #7962
 - Support custom filter in Kotlin DSL #7951
 - Option for default event in DefaultAuthenticationEventPublisher #7937
 - DefaultAuthenticationEventPublisher is now configurable via a Map #7925
 - Add oauth2Client WebTestClient Test Support #7910
 - Nimbus OpaqueTokenIntrospectors should differentiate token and service errors #7902
 - OAuth 2.0 Client supports application clustering #7889
 - Add JwtIssuerReactiveAuthenticationManagerResolver #7887
 - Consider adding JwtClaimValidator #7860
 - Add ReactiveJwtIssuerAuthenticationManagerResolver and Reactive Multi Tentant Examples #7857
 - Add JDBC implementation of OAuth2AuthorizedClientService #7855
 - Set default redirect in OidcClientInitiatedServerLogoutSuccessHandler #7842
 - Introduce OAuth2Authorization success/failure handlers #7840
 - Add Opaque Token Reactive Test Support #7827
 - DefaultAuthenticationEventPublisher should allow configuring a default event #7825
 - DefaultAuthenticationEventPublisher should be configurable via Map #7824
 - Oauth2login xmlconfig implementation #7821
 - OAuth 2.0 Resource Server XML Support #7775
 - SAML AuthNRequest Signatures - Step 2 #7759
 - SAML AuthNRequest Signatures - Step 1 #7758
 - Simplify customizing OAuth2AuthorizationRequest #7748
 - SAML2 HTTP-Redirect: Missing Signature and SigAlg parameters in SAMLRequest Url (AuthNRequest) #7711
 - Consider adding switch to enable or disable OIDC nonce #7696
 - Getting OAuth2AuthenticationException when Bearer token is empty #7668
 - Provide JDBC implementation of OAuth2AuthorizedClientService #7655
 - Add custom ServerHttpHeadersWriter to HeadersSpec #7636
 - RefreshTokenOAuth2AuthorizedClientProvider does not handle expired refresh token #7583
 - Fix typo 'is' -> 'if' in javadoc #7559
 - Saml2LoginConfigurer should expose AuthenticationManager setter #7374
 - Provide XML namespace support for OAuth 2.0 Resource Server #5185
 - Provide XML namespace support for OAuth 2.0 Client #5184
 - Migrate Groovy to Java #4939
 - Provide XML namespace support for OAuth2Login #4557
 
🪲 Bug Fixes
- Typo fix #8059
 - Fix typo in AntPathRequestMatcher contructor comment #8042
 - Docs Should Style Links that are Code as Link #8038
 - An AuthenticationManager is required. Oauth2ResourceServer + anonymous disable #8031
 - Tab switching does not work in documentation code samples #8025
 - Build failure with NoClassDefFoundError on javax/mail/internet #7994
 - Remove Duplicate Runtime Environment From Docs #7980
 - OAuth2AuthorizationCodeGrantWebFilter should also match on query parameters #7966
 - OAuth2AuthorizationCodeGrantFilter should also match on query parameters #7963
 - fix #7952 Don't force downcasting of RequestAttributes to ServletRequestAttributes #7953
 - ClassCastException for ServletRequestAttributes #7952
 - Prevent double-escaping of authorize URL parameters [#7881](https://gi...
 
4.2.14.RELEASE
⭐ New Features
🔨 Dependency Upgrades
- Update to Thymeleaf 3.0.11.RELEASE #7948
 - Update to Spring Boot 1.5.22.RELEASE #7947
 - Update to Spring Session 1.3.5.RELEASE #7946
 - Update to Spring Data Redis 1.8.23.RELEASE #7945
 - Update to Spring Data JPA 1.11.23.RELEASE #7944
 - Update to Spring Data Commons 1.13.23.RELEASE #7943
 - Update to CGLIB 3.2.12 #7942
 - Update to Spring Framework 4.3.26.RELEASE #7941
 
5.3.0.RC1
⭐ New Features
- Add RSocket Authentication Extension Support #7935
 - SecurityEvaluationContextExtension.getRootObject() Specific Type #7891
 - Add oauth2Client MockMvc Test Support #7886
 - Nimbus JwtDecoders should differentiate token and service errors #7885
 - Remove redundant branches from SessionManagementConfigurer #7879
 - AuthenticationWebFilter's ReactiveAuthenticationManagerResolver should take a ServerWebExchange #7872
 - SAML2: Wrong IdP response URL throws NPE (for non-existing "RelyingParty") #7865
 - Typo in doc #7830
 - Add oauth2Login Reactive Test support #7828
 - Improve Bearer Token Error Handling #7826
 - Add BearerTokenErrors #7823
 - Add InvalidBearerTokenException #7822
 - Make OAuth2AccessToken converters public #7815
 - AuthenticationEventPublisher Lookup #7802
 - Modernize Documentation Styling #7801
 - Invalid OAuth2 login attempts don't emit a corresponding ApplicationEvent #7793
 - Set secure on cookie when logging out #7764
 - Introduce Reactive OAuth2Authorization success/failure handlers #7756
 - ProviderManager should have a varargs constructor #7713
 - Introduce Reactive OAuth2Authorization success/failure handlers #7699
 - Migrate LDAP integration tests groovy->java #7691
 - WebSecurityConfigurerAdapter: Unable to use custom AuthenticationEventPublisher #7515
 - Add Jackson support to OAuth2 session related classes #4886
 
🪲 Bug Fixes
- Build failing with NoSuchMethodError #7888
 - cassample integration tests are failing #7874
 - Form login requiresAuthenticationMatcher is not used in WebFlux #7863
 - BasicAuthenticationFilter ignores credentials charset #7835
 - Default LDIF file not picked up in LDAP "unboundid" mode #7833
 - Incorrect LDIF file example in LDAP documentation #7832
 - OpaqueTokenRequestPostProcessor should respect configuration order #7800
 - Form Login authenticationFailureHandler is not used in ServerHttpSecurity #7782
 
🔨 Dependency Upgrades
- Update to Gradle 6.1.1 #7936
 - Update to GAE 1.9.78 #7893
 - Update to Spring Boot 2.2.4.RELEASE #7892
 - Update Gradle 6.1 #7838
 
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
5.2.2.RELEASE
⭐ New Features
- Don't cache requests with 
Accept: text/event-streamby default. #7744 - Provide reactive implementation of AuthorizedClientServiceOAuth2AuthorizedClientManager #7717
 - Remove redundant validation for redirect-uri #7707
 - Polish oauth2-client Error-handling Tests #7647
 - Remove unnecessary code in SecurityExpressionRoot #7635
 - Extract HTTPS Documentation #7626
 - Remove unnecessary code in SecurityExpressionRoot #7601
 - Make jwks_uri optional for RFC 8414 and required for OpenID Connect #7573
 
🪲 Bug Fixes
- Form login requiresAuthenticationMatcher is not used in WebFlux #7867
 - Form Login authenticationFailureHandler is not used in ServerHttpSecurity #7866
 - BasicAuthenticationFilter ignores credentials charset #7859
 - Default LDIF file not picked up in LDAP "unboundid" mode #7852
 - Incorrect LDIF file example in LDAP documentation #7849
 - Use the custom ServerRequestCache that the user configures #7753
 - RequestCacheSpec not used on RedirectServerAuthenticationEntryPoint for OAuth2LoginSpec.configure #7751
 - Disabling logout in WebFlux does nothing #7742
 - Saml2Authentication isn't serializable #7739
 - Docs ServerRSocketFactoryCustomizer->ServerRSocketFactoryProcessor #7738
 - CompositeServerHttpHeadersWriter Should Execute Sequentially #7732
 - DelegatingServerAuthenticationSuccessHandler Should Execute Sequentially #7729
 - DelegatingServerLogoutHandler Should Execute Sequentially #7725
 - WebFlux oauth2Login returns 500 when bad client credentials #7703
 - Correctly configure authorization requests repository for OAuth2 login #7690
 - Correctly configure authorization requests repository for OAuth2 login #7689
 - DefaultReactiveOAuth2AuthorizedClientManager never calls UnAuthenticatedServerOAuth2AuthorizedClientRepository #7684
 - Update @MessageMapping to match input/output cardinality #7669
 - Add http and https spring.schema mappings #7623
 - Avoid toString in favor of getName in order to extract sid #6354
 
🔨 Dependency Upgrades
- Update to Spring Boot 2.2.4 #7909
 - Update to org.slf4j 1.7.30 #7908
 - Update to org.powermock 2.0.5 #7907
 - Update to hibernate-validator 6.1.2.Final #7906
 - Update to hibernate-entitymanager 5.4.10.Final #7905
 - Update to org.aspectj 1.9.5 #7904
 - Update to httpclient 4.5.11 #7903
 - Update to commons-codec 1.14 #7899
 - Update to com.squareup.okhttp3 3.14.6 #7898
 - Update to Jackson 2.10.2 #7897
 - Update to Reactor Dysprosium SR4 #7896
 - Update to Spring Data Moore SR3 #7895
 - Update to Spring Framework 5.2.3 #7894
 - Update nimbus-jose-jwt because of CVE-2019-17195 #7570
 
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
5.1.8.RELEASE
⭐ New Features
- Remove redundant validation for redirect-uri #7708
 - WebClient support should get new access token when expired and client_credentials #7685
 
🪲 Bug Fixes
- Default LDIF file not picked up in LDAP "unboundid" mode #7853
 - CompositeServerHttpHeadersWriter Should Execute Sequentially #7735
 - DelegatingServerAuthenticationSuccessHandler Should Execute Sequentially #7730
 - DelegatingServerLogoutHandler Should Execute Sequentially #7727
 - WebFlux oauth2Login returns 500 when bad client credentials #7704
 
🔨 Dependency Upgrades
- Update to Spring Boot 2.1.12 #7923
 - Update to org.slf4j 1.7.30 #7922
 - Update to org.powermock 2.0.5 #7921
 - Update to hibernate-validator 6.0.18.Final #7920
 - Update to hibernate-entitymanager 5.3.15.Final #7919
 - Update to org.bouncycastle:bcpkix-jdk15on 1.64 #7918
 - Update to org.aspectj 1.9.5 #7917
 - Update to httpclient 4.5.11 #7916
 - Update to com.squareup.okhttp3 3.12.8 #7915
 - Update to Jackson 2.9.10 #7914
 - Update to Reactor Californium-SR15 #7913
 - Update to Spring Data Lovelace SR15 #7912
 - Update to Spring Framework 5.1.13 #7911
 
5.0.14.RELEASE
🪲 Bug Fixes
- Default LDIF file not picked up in LDAP "unboundid" mode #7854
 - CompositeServerHttpHeadersWriter Should Execute Sequentially #7736
 - SEC-2980: Possible race condition in SessionRegistryImpl #7227
 
🔨 Dependency Upgrades
- Update to org.slf4j 1.7.30 #7934
 - Update to org.powermock 2.0.5 #7933
 - Update to hibernate-validator 6.0.18.Final #7932
 - Update to org.bouncycastle:bcprov-jdk15on 1.64 #7931
 - Update to org.bouncycastle:bcpkix-jdk15on 1.64 #7930
 - Update to org.aspectj 1.9.5 #7929
 - Update to httpclient 4.5.11 #7928
 - Update to com.squareup.okhttp3 3.12.8 #7927
 - Update to Jackson 2.9.10 #7926
 - Update to Spring Framework 5.0.16 #7924
 
5.3.0.M1
⭐ New Features
- Allow disabling dependency locking #7799
 - Build task "snapshots" should not use locked dependencies #7798
 - Add oauth2Login MockMvc Test Support #7789
 - Manage Versions using Version Locking #7788
 - Use Gradle Platform / Constraints #7787
 - Idiomatic Kotlin DSL for configuring HTTP security in servlet based applications #7785
 - Fix description of PasswordEncoder #7784
 - Fix unchecked assignment and possible NPE #7773
 - Resolve JavaType only once for whitelisted class #7755
 - Set secure when cancelling remember-me cookie #7726
 - Add JwtIssuerAuthenticationManagerResolver #7724
 - Add opaque token test support #7712
 - Remove redundant validation for redirect-uri #7706
 - Reactive Implementation of AuthorizedClientServiceOAuth2AuthorizedClientManager #7702
 - Incomplete Documentation for Setting Up MockMvc and Spring Security #7688
 - Add Oidc Login Reactive Test Support #7680
 - Remove consecutive-word duplications in Javadocs #7673
 - Fix InitializeAuthenticationProviderBeanManagerConfigurer Javadoc #7666
 - Fix minor typo in HttpSecurity documentation #7663
 - Check BCrypt hashed value of a byte array #7661
 - Allow configuration of AuthenticationManager in saml2Login() #7654
 - Add oidcLogin MockMvc Test Support #7618
 - Add OidcUserInfo.Builder #7593
 - Add OidcIdToken.Builder #7592
 - Provide reactive implementation of AuthorizedClientServiceOAuth2AuthorizedClientManager #7569
 - Specify return type in InitializeUserDetailsBeanManagerConfigurer method Javadoc #7557
 - In Test @AuthenticationPrincipal is null because ServerWebExchange is not wrapped #6598
 - Make MethodSecurityEvaluationContext Delegates to MethodBasedEvaluationContext #6249
 - Override the key to avoid CookieTheftException #5509
 - Add resource server support for multiple trusted JWT access token issuers #5385
 - RememberMeConfigurer does not use the key from RememberMeServices #4140
 - Option in BasicAuthenticationFilter to log more exception info #3308
 
🪲 Bug Fixes
- OidcLoginRequestPostProcessor should respect configuration order #7794
 - Fix var typo and code readability in resource server documentation #7772
 - Docs ServerRSocketFactoryCustomizer->ServerRSocketFactoryProcessor #7737
 - Use the custom ServerRequestCache for Oauth2LoginSpec #7734
 - CompositeServerHttpHeadersWriter Should Execute Sequentially #7731
 - DelegatingServerAuthenticationSuccessHandler Should Execute Sequentially #7728
 - DelegatingServerLogoutHandler Should Execute Sequentially #7723
 - RequestCacheSpec not used on RedirectServerAuthenticationEntryPoint for OAuth2LoginSpec.configure #7721
 - Disabling logout in WebFlux does nothing #7682
 - Saml2Authentication isn't serializable #7681
 - Correctly configure authorization requests repository for OAuth2 login #7675
 - Error in javadoc for oauth2ResourceServer #7670
 - DefaultReactiveOAuth2AuthorizedClientManager never calls UnAuthenticatedServerOAuth2AuthorizedClientRepository #7544
 - WebFlux oauth2Login returns 500 when bad client credentials #5562
 
🔨 Dependency Upgrades
⏪ Non-passive
- UsernamePasswordAuthenticationTokenDeserializer doesn't deserialize details to correct type #7482
 
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
5.2.1.RELEASE
⭐ New Features
- Fix variable reference in sample code #7571
 - spring-security-saml2-service-provider impossible to use different format of assertionConsumerServiceUrlTemplate #7565
 - Add Resource Server Multi-tenancy Documentation #7532
 - Update SAML sample to use boot auto config #7521
 - Add Reactive CSRF Documentation #6487
 
🪲 Bug Fixes
- Restore Removed Throws Clauses #7580
 - CsrfWebFilter should handle multipart/form-data #7576
 - Make saveAuthorizedClient save the authorized client #7551
 - DefaultReactiveOAuth2AuthorizedClientManager.saveAuthorizedClient does not save authorized client #7546
 throws Exceptionwas removed from WebSecurityConfigurerAdapter#configure(WebSecurity) #7541- SAML2 Provider SubjectConfirmation validation failure #7514
 - SAML2 Provider AuthNRequest Hardcoded Protocol Binding #7513
 - Clock skew to check access token expiration has wrong sign #7511
 
🔨 Dependency Upgrades
- Upgrade to Spring Boot 2.2.0.RELEASE #7566
 
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
5.1.7.RELEASE
⭐ New Features
- CookieServerCsrfRepositoryTests should not start domain with a dot #7501
 - Fix docs typo WebSecurityConfigurationAdapter->WebSecurityConfigurerAdapter #7225
 
🪲 Bug Fixes
- OAuth2AuthorizationCodeGrantWebFilter should not restrict redirect-uri #7469
 - RequestContextSubscriber could put null value in Reactor Context #7410
 - OAuth2AuthorizationRequest not removed from session #7369
 - InMemoryReactiveClientRegistrationRepository should not use ConcurrentReferenceHashMap #7359
 - NimbusJwtDecoderJwkSupport only sets 'application/json' Accept header #7340
 - SEC-2971: Footnotes are messed up in online docs #7326
 - Confusing example - WebMvcConfigurer vs WebSecurityConfigurerAdapter #7303
 - OnCommittedResponseWrapper fails on static resources served by Tomcat 8.5 #7297
 - Fix WebClient Memory Leaks #7294
 - Ensure filter order is maintained when using springSecurity() along with other filters #7267
 - SessionAuthenticationStrategy make HttpSecurity.sessionManagement().maximumSessions(1) unavailability #7262
 - SEC-2980: Possible race condition in SessionRegistryImpl #7226
 
5.2.0.RELEASE
⭐ New Features
- Add Hello RSocket Sample #7504
 - Add RSocket Reference #7502
 - CookieServerCsrfRepositoryTests should not start domain with a dot #7500
 - Add OAuth2 Resource Server to Modules Section #7498
 - Initial saml2 login docs #7495
 - SAML 2 Assertion - Always require signature validation #7490
 - Add Reactive Messaging CurrentSecurityContextPrincipalArgumentResolver #7488
 - CurrentSecurityContextArgumentResolver polishes #7487
 - Add ClientRegistration.withClientRegistration(ClientRegistration) #7486
 - Add hasAuthority method to RSocketSecurity #7478
 - Align Servlet ExchangeFilterFunction CoreSubscriber #7476
 - WebFluxSecurityConfiguration does not configure oauth2Client #7470
 - Allow to customize OAuth2AuthorizationRequestRedirectWebFilter in OAuth2LoginSpec #7467
 - Add ability to customize OAuth2AuthorizationRequestRedirectWebFilter in OAuth2LoginSpec #7466
 - Document Clear-Site-Data Support #7463
 - Document RFC 8414 Support #7462
 - Document Bearer Token Propagation #7461
 - Document Reactive Mock Jwt Testing #7460
 - Fixed typo in comment #7458
 - Use Schedulers.boundedElastic() #7457
 - AbstractUserDetailsReactiveAuthenticationManager uses newParallel #7456
 - Add hasAnyAuthority method in AuthorizePayloadsSpec.Access #7455
 - Add denyAll method in AuthorizePayloadsSpec.Access #7451
 - AuthenticationFilter's methods should be private #7447
 - AuthenticationFilter should provide session fixation protection #7446
 - Use Jwt.Builder #7443
 - Add AuthorizePayloadsSpec.Access denyAll, hasAnyRole, hasAnyAuthority #7437
 - Add AuthorizePayloadsSpec.Access hasAuthority #7435
 - Document Resource Server User-Info Usage #7431
 - Document Reactive Opaque Token Usage #7430
 - Document NimbusReactiveJwtDecoder #7425
 - Document Mock Jwt Testing #7424
 - Servlet ExchangeFilterFunctions should align #7422
 - Document Opaque Token Usage #7420
 - ServletBearerExchangeFilterFunction should propagate Authentication #7418
 - Document NimbusJwtDecoder #7408
 - Document Jwt.Builder #7407
 - Document OAuth2AuthenticatedPrincipal #7406
 - DefaultReactiveOAuth2AuthorizedClientManager should default ServerWebExchange #7390
 - Make OAuth2User extends OAuth2AuthenticatedPrincipal #7383
 - OAuth2User should extend OAuth2AuthenticatedPrincipal #7378
 - SamlAuthenticationProvider should propagate actual validation errors #7375
 - Add Reactive Messaging AuthenticationPrincipalArgumentResolver #7363
 - Allow Custom PayloadInterceptor to be Added #7362
 - Default RSocketSecurity #7361
 - Add nonce to OIDC Authentication Request #7337
 - Introduce LogoutSuccessEvent #7306
 - Mock Jwt should ensure that CSRF is not required #7170
 - Document BearerTokenResolver in reference #6254
 - Consider adding nonce to OIDC Authentication Request #4442
 - SEC-2680: Fire an event when logout has finished #2900
 
🪲 Bug Fixes
- Correctly populate the AuthNRequest attributes #7496
 - AuthNRequest#Destination contains the SP entity ID, not the IDP SSO URI #7494
 - AbstractUserDetailsReactiveAuthenticationManager default Scheduler should be disposed #7492
 - Always validate saml2 signatures #7491
 - CurrentSecurityContext Javadoc should be about SecurityContext #7489
 - Fix AuthorizationPayloadInterceptor order using PayloadInterceptorOrd… #7450
 - SAML Response Skew is using the wrong type #7448
 - Jwt.Builder should keep notBefore as an Instant #7442
 - AuthorizePayloadsSpec uses AUTHENTICATION for AuthorizationPayloadInterceptor #7434
 - RSocketMessageHandlerITests could hang #7415
 - RSocketSecurity anyRequest delegates to anyExchange #7414
 - OpenSamlAuthenticationProvider should not throw AuthenticationServiceException #7377
 - OpenSamlAuthenticationProvider should propagate validation errors #7376
 - OAuth2AuthorizationCodeGrantWebFilter should not restrict redirect-uri #7036
 
🔨 Dependency Upgrades
- Update to Spring Data Moore-RELEASE #7506
 - Remaining dependency upgrades for 5.2.0 #7505
 - Upgrade JSON jackson library to 2.10.0 #7480
 - Release/dependencies for 5.2 ga #7471
 - Update the AspectJ Gradle Plugin to 4.0.2 #7427
 - Update to Gradle 5.6.2 #7412
 - Upgrade to OpenSaml 3.4.3 #7392
 - Upgrade embedded Apache Tomcat to 9.0.24 #7384
 
❤️ Contributors
We'd like to thank all the contributors who worked on this release!