Skip to content

Commit 6598144

Browse files
committed
Use Version Ranges
Fixes gh-7788
1 parent 1bb1e74 commit 6598144

File tree

9 files changed

+100
-80
lines changed

9 files changed

+100
-80
lines changed

config/src/test/java/org/springframework/security/config/annotation/web/configurers/NamespaceRememberMeTests.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public void rememberMeLoginWhenUsingDefaultsThenMatchesNamespace() throws Except
9898
.andReturn();
9999

100100
rememberMe = result.getResponse().getCookie("remember-me");
101-
assertThat(rememberMe).isNotNull().extracting("maxAge").containsExactly(0);
101+
assertThat(rememberMe).isNotNull().extracting(Cookie::getMaxAge).isEqualTo(0);
102102

103103
this.mvc.perform(post("/authentication-class").with(csrf())
104104
.cookie(rememberMe))
@@ -292,7 +292,7 @@ public void rememberMeLoginWhenTokenValidityDeclaredThenMatchesNamespace() throw
292292
.with(rememberMeLogin()))
293293
.andReturn().getResponse().getCookie("remember-me");
294294

295-
assertThat(expiredRememberMe).extracting("maxAge").containsExactly(314);
295+
assertThat(expiredRememberMe).extracting(Cookie::getMaxAge).isEqualTo(314);
296296
}
297297

298298
@Configuration
@@ -320,8 +320,8 @@ public void rememberMeLoginWhenUsingDefaultsThenCookieMaxAgeMatchesNamespace() t
320320
.with(rememberMeLogin()))
321321
.andReturn().getResponse().getCookie("remember-me");
322322

323-
assertThat(expiredRememberMe).extracting("maxAge")
324-
.containsExactly(AbstractRememberMeServices.TWO_WEEKS_S);
323+
assertThat(expiredRememberMe).extracting(Cookie::getMaxAge)
324+
.isEqualTo(AbstractRememberMeServices.TWO_WEEKS_S);
325325
}
326326

327327
@Test
@@ -331,7 +331,7 @@ public void rememberMeLoginWhenUsingSecureCookieThenMatchesNamespace() throws Ex
331331
.with(rememberMeLogin()))
332332
.andReturn().getResponse().getCookie("remember-me");
333333

334-
assertThat(secureCookie).extracting("secure").containsExactly(true);
334+
assertThat(secureCookie).extracting(Cookie::getSecure).isEqualTo(true);
335335
}
336336

337337
@Configuration
@@ -357,7 +357,7 @@ public void rememberMeLoginWhenUsingDefaultsThenCookieSecurityMatchesNamespace()
357357
.secure(true))
358358
.andReturn().getResponse().getCookie("remember-me");
359359

360-
assertThat(secureCookie).extracting("secure").containsExactly(true);
360+
assertThat(secureCookie).extracting(Cookie::getSecure).isEqualTo(true);
361361
}
362362

363363
@Test

config/src/test/java/org/springframework/security/config/annotation/web/configurers/UrlAuthorizationsTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public void configureWhenNoAccessDecisionManagerThenDefaultsToAffirmativeBased()
139139
FilterSecurityInterceptor interceptor = getFilter(FilterSecurityInterceptor.class);
140140
assertThat(interceptor).isNotNull();
141141
assertThat(interceptor).extracting("accessDecisionManager")
142-
.first().isInstanceOf(AffirmativeBased.class);
142+
.isInstanceOf(AffirmativeBased.class);
143143
}
144144

145145
private <T extends Filter> T getFilter(Class<T> filterType) {

gradle/dependency-management.gradle

Lines changed: 85 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
if (!project.hasProperty("reactorVersion")) {
2-
ext.reactorVersion = "Dysprosium-SR1"
2+
ext.reactorVersion = "Dysprosium-SR+"
33
}
44

55
if (!project.hasProperty("springVersion")) {
6-
ext.springVersion = "5.2.1.RELEASE"
6+
ext.springVersion = "latest.release"
77
}
88

99
if (!project.hasProperty("springDataVersion")) {
10-
ext.springDataVersion = "Moore-SR1"
10+
ext.springDataVersion = "Moore-SR+"
1111
}
12-
ext.rsocketVersion = "1.0.0-RC5"
12+
ext.rsocketVersion = "1.+"
13+
ext.openSamlVersion = "3.+"
1314

1415
// https://github.com/gradle/gradle/issues/7576#issuecomment-434637595
1516
configurations {
@@ -29,92 +30,111 @@ dependencies {
2930
management platform("io.projectreactor:reactor-bom:$reactorVersion")
3031
management platform("org.springframework.data:spring-data-releasetrain:$springDataVersion")
3132
constraints {
32-
management "ch.qos.logback:logback-classic:1.2.3"
33-
management "com.fasterxml.jackson.core:jackson-databind:2.10.0"
33+
management "ch.qos.logback:logback-classic:1.+"
34+
management "com.fasterxml.jackson.core:jackson-databind:2.+"
3435
management "com.google.appengine:appengine-api-1.0-sdk:$gaeVersion"
3536
management "com.google.appengine:appengine-api-labs:$gaeVersion"
3637
management "com.google.appengine:appengine-api-stubs:$gaeVersion"
3738
management "com.google.appengine:appengine-testing:$gaeVersion"
3839
management "com.google.appengine:appengine:$gaeVersion"
3940
management "com.google.inject:guice:3.0"
40-
management "com.nimbusds:nimbus-jose-jwt:7.8.1"
41-
management "com.nimbusds:oauth2-oidc-sdk:6.14"
42-
management "com.squareup.okhttp3:mockwebserver:3.14.2"
43-
management "com.squareup.okhttp3:okhttp:3.14.1"
44-
management "com.sun.xml.bind:jaxb-core:2.3.0.1"
45-
management "com.sun.xml.bind:jaxb-impl:2.3.2"
46-
management "com.unboundid:unboundid-ldapsdk:4.0.12"
47-
management "commons-codec:commons-codec:1.13"
48-
management "commons-collections:commons-collections:3.2.2"
49-
management "commons-httpclient:commons-httpclient:3.1"
50-
management "commons-logging:commons-logging:1.2"
51-
management "io.projectreactor.tools:blockhound:1.0.1.RELEASE"
41+
management "com.nimbusds:nimbus-jose-jwt:latest.release"
42+
management "com.nimbusds:oauth2-oidc-sdk:latest.release"
43+
management "com.squareup.okhttp3:mockwebserver:3.+"
44+
management "com.squareup.okhttp3:okhttp:3.+"
45+
management "com.sun.xml.bind:jaxb-core:2.+"
46+
management "com.sun.xml.bind:jaxb-impl:2.+"
47+
management "com.unboundid:unboundid-ldapsdk:4.+"
48+
management "commons-codec:commons-codec:1.+"
49+
management "commons-collections:commons-collections:3.+"
50+
management "commons-httpclient:commons-httpclient:3.+"
51+
management "commons-logging:commons-logging:1.+"
52+
management "io.projectreactor.tools:blockhound:1.+"
5253
management "io.rsocket:rsocket-core:${rsocketVersion}"
5354
management "io.rsocket:rsocket-transport-netty:${rsocketVersion}"
54-
management "javax.annotation:jsr250-api:1.0"
55-
management "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.2"
56-
management "javax.servlet.jsp:javax.servlet.jsp-api:2.3.3"
57-
management "javax.servlet:javax.servlet-api:4.0.1"
58-
management "javax.validation:validation-api:2.0.1.Final"
59-
management "javax.xml.bind:jaxb-api:2.4.0-b180830.0359"
55+
management "javax.annotation:jsr250-api:1.+"
56+
management "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.+"
57+
management "javax.servlet.jsp:javax.servlet.jsp-api:2.+"
58+
management "javax.servlet:javax.servlet-api:4.+"
59+
management "javax.validation:validation-api:2.+"
60+
management "javax.xml.bind:jaxb-api:2.+"
6061
management "junit:junit:4.12"
61-
management "ldapsdk:ldapsdk:4.1"
62-
management "net.sf.ehcache:ehcache:2.10.6"
63-
management "net.sourceforge.htmlunit:htmlunit:2.36.0"
64-
management "net.sourceforge.nekohtml:nekohtml:1.9.22"
65-
management "nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:2.4.1"
66-
management "opensymphony:sitemesh:+"
62+
management "ldapsdk:ldapsdk:4.+"
63+
management "net.sf.ehcache:ehcache:2.+"
64+
management "net.sourceforge.htmlunit:htmlunit:2.+"
65+
management "net.sourceforge.nekohtml:nekohtml:1.+"
66+
management "nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:2.+"
67+
management "opensymphony:sitemesh:2.+"
6768
management "org.apache.directory.server:apacheds-core-entry:1.5.5"
6869
management "org.apache.directory.server:apacheds-core:1.5.5"
6970
management "org.apache.directory.server:apacheds-protocol-ldap:1.5.5"
7071
management "org.apache.directory.server:apacheds-protocol-shared:1.5.5"
7172
management "org.apache.directory.server:apacheds-server-jndi:1.5.5"
7273
management "org.apache.directory.shared:shared-ldap:0.9.15"
73-
management "org.apache.httpcomponents:httpclient:4.5.10"
74-
management "org.apache.taglibs:taglibs-standard-jstlel:1.2.5"
74+
management "org.apache.httpcomponents:httpclient:4.+"
75+
management "org.apache.taglibs:taglibs-standard-jstlel:1.+"
7576
management "org.aspectj:aspectjrt:$aspectjVersion"
7677
management "org.aspectj:aspectjtools:$aspectjVersion"
7778
management "org.aspectj:aspectjweaver:$aspectjVersion"
78-
management "org.assertj:assertj-core:3.12.2"
79-
management "org.bouncycastle:bcpkix-jdk15on:1.64"
80-
management "org.bouncycastle:bcprov-jdk15on:1.64"
79+
management "org.assertj:assertj-core:3.+"
80+
management "org.bouncycastle:bcpkix-jdk15on:1.+"
81+
management "org.bouncycastle:bcprov-jdk15on:1.+"
8182
management "org.codehaus.groovy:groovy-all:2.4.17"
8283
management "org.codehaus.groovy:groovy:2.4.17"
8384
management "org.eclipse.jetty:jetty-server:9.4.19.v20190610"
8485
management "org.eclipse.jetty:jetty-servlet:9.4.19.v20190610"
85-
management "org.eclipse.persistence:javax.persistence:2.2.1"
86+
management "org.eclipse.persistence:javax.persistence:2.+"
8687
management "org.gebish:geb-spock:0.10.0"
87-
management "org.hibernate:hibernate-entitymanager:5.4.8.Final"
88-
management "org.hibernate:hibernate-validator:6.1.0.Final"
89-
management "org.hsqldb:hsqldb:2.5.0"
90-
management "org.jasig.cas.client:cas-client-core:3.5.1"
91-
management "org.jasig.cas:cas-server-webapp:4.2.7"
92-
management "org.javassist:javassist:3.22.0-CR2"
93-
management "org.mockito:mockito-core:3.0.0"
94-
management "org.openid4java:openid4java-nodeps:0.9.6"
95-
management "org.opensaml:opensaml-core:3.4.3"
96-
management "org.opensaml:opensaml-saml-api:3.4.3"
97-
management "org.opensaml:opensaml-saml-impl:3.4.3"
98-
management "org.powermock:powermock-api-mockito2:2.0.4"
99-
management "org.powermock:powermock-api-support:2.0.4"
100-
management "org.powermock:powermock-core:2.0.4"
101-
management "org.powermock:powermock-module-junit4-common:2.0.4"
102-
management "org.powermock:powermock-module-junit4:2.0.4"
103-
management "org.powermock:powermock-reflect:2.0.4"
104-
management "org.python:jython:2.5.0"
105-
management "org.seleniumhq.selenium:htmlunit-driver:2.36.0"
106-
management "org.seleniumhq.selenium:selenium-java:3.141.59"
107-
management "org.seleniumhq.selenium:selenium-support:3.141.59"
108-
management "org.skyscreamer:jsonassert:1.5.0"
109-
management "org.slf4j:jcl-over-slf4j:1.7.28"
110-
management "org.slf4j:log4j-over-slf4j:1.7.28"
111-
management "org.slf4j:slf4j-api:1.7.28"
112-
management "org.sonatype.sisu.inject:cglib:2.2.1-v20090111"
88+
management "org.hibernate:hibernate-entitymanager:5.+"
89+
management "org.hibernate:hibernate-validator:6.+"
90+
management "org.hsqldb:hsqldb:2.+"
91+
management "org.jasig.cas.client:cas-client-core:3.+"
92+
management "org.jasig.cas:cas-server-webapp:4.0.+"
93+
management "org.mockito:mockito-core:3.+"
94+
management "org.openid4java:openid4java-nodeps:0.+"
95+
management "org.opensaml:opensaml-core:$openSamlVersion"
96+
management "org.opensaml:opensaml-saml-api:$openSamlVersion"
97+
management "org.opensaml:opensaml-saml-impl:$openSamlVersion"
98+
management "org.powermock:powermock-api-mockito2:2.+"
99+
management "org.powermock:powermock-api-support:2.+"
100+
management "org.powermock:powermock-core:2.+"
101+
management "org.powermock:powermock-module-junit4-common:2.+"
102+
management "org.powermock:powermock-module-junit4:2.+"
103+
management "org.powermock:powermock-reflect:2.+"
104+
management "org.python:jython:2.5.+"
105+
management "org.seleniumhq.selenium:htmlunit-driver:2.+"
106+
management "org.seleniumhq.selenium:selenium-java:3.+"
107+
management "org.seleniumhq.selenium:selenium-support:3.+"
108+
management "org.skyscreamer:jsonassert:1.+"
109+
management "org.slf4j:jcl-over-slf4j:1.+"
110+
management "org.slf4j:log4j-over-slf4j:1.+"
111+
management "org.slf4j:slf4j-api:1.+"
113112
management "org.spockframework:spock-core:1.0-groovy-2.4"
114113
management "org.spockframework:spock-spring:1.0-groovy-2.4"
115-
management "org.springframework.ldap:spring-ldap-core:2.3.2.RELEASE"
116-
management "org.synchronoss.cloud:nio-multipart-parser:1.1.0"
117-
management "org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE"
114+
management "org.springframework.ldap:spring-ldap-core:latest.release"
115+
management "org.synchronoss.cloud:nio-multipart-parser:1.+"
116+
management "org.thymeleaf:thymeleaf-spring5:3.+"
117+
}
118+
}
119+
120+
configurations {
121+
all {
122+
resolutionStrategy {
123+
componentSelection {
124+
all { ComponentSelection selection ->
125+
def candidate = selection.getCandidate()
126+
def version = candidate.getVersion().toLowerCase()
127+
128+
if (version.contains("alpha") || version.contains("beta")) {
129+
selection.reject("Rejecting $selection with version $version as alpha/beta")
130+
}
131+
132+
if (candidate.getModule().equals("jsr250-api") && version.equals("1.0-20050927.133100")) {
133+
selection.reject("Rejecting $selection with version $version as invalid version")
134+
}
135+
}
136+
}
137+
}
118138
}
119139
}
120140

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/endpoint/WebClientReactivePasswordTokenResponseClientTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public void getTokenResponseWhenSuccessResponseAndNotBearerTokenTypeThenThrowOAu
150150
assertThatThrownBy(() -> this.tokenResponseClient.getTokenResponse(passwordGrantRequest).block())
151151
.isInstanceOf(OAuth2AuthorizationException.class)
152152
.hasMessageContaining("[invalid_token_response] An error occurred parsing the Access Token response")
153-
.hasMessageContaining("Token type must be \"Bearer\"");
153+
.hasCauseInstanceOf(Throwable.class);
154154
}
155155

156156
@Test

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/endpoint/WebClientReactiveRefreshTokenTokenResponseClientTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public void getTokenResponseWhenSuccessResponseAndNotBearerTokenTypeThenThrowOAu
155155
assertThatThrownBy(() -> this.tokenResponseClient.getTokenResponse(refreshTokenGrantRequest).block())
156156
.isInstanceOf(OAuth2AuthorizationException.class)
157157
.hasMessageContaining("[invalid_token_response] An error occurred parsing the Access Token response")
158-
.hasMessageContaining("Token type must be \"Bearer\"");
158+
.hasCauseInstanceOf(Throwable.class);
159159
}
160160

161161
@Test

oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/authentication/OpaqueTokenAuthenticationProviderTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public void authenticateWhenIntrospectionEndpointThrowsExceptionThenInvalidToken
111111
assertThatCode(() -> provider.authenticate(new BearerTokenAuthenticationToken("token")))
112112
.isInstanceOf(OAuth2AuthenticationException.class)
113113
.extracting("error.description")
114-
.containsExactly("An error occurred while attempting to introspect the token: Invalid token");
114+
.isEqualTo("An error occurred while attempting to introspect the token: Invalid token");
115115
}
116116

117117
@Test

oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/authentication/OpaqueTokenReactiveAuthenticationManagerTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void authenticateWhenIntrospectionEndpointThrowsExceptionThenInvalidToken
117117
assertThatCode(() -> provider.authenticate(new BearerTokenAuthenticationToken("token")).block())
118118
.isInstanceOf(OAuth2AuthenticationException.class)
119119
.extracting("error.description")
120-
.containsExactly("An error occurred while attempting to introspect the token: Invalid token");
120+
.isEqualTo("An error occurred while attempting to introspect the token: Invalid token");
121121
}
122122

123123
@Test

oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/NimbusOpaqueTokenIntrospectorTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ public void introspectWhenInactiveTokenThenInvalidToken() {
168168
assertThatCode(() -> introspectionClient.introspect("token"))
169169
.isInstanceOf(OAuth2IntrospectionException.class)
170170
.extracting("message")
171-
.containsExactly("Provided token [token] isn't active");
171+
.isEqualTo("Provided token [token] isn't active");
172172
}
173173

174174
@Test
@@ -205,7 +205,7 @@ public void introspectWhenIntrospectionEndpointThrowsExceptionThenInvalidToken()
205205
assertThatCode(() -> introspectionClient.introspect("token"))
206206
.isInstanceOf(OAuth2IntrospectionException.class)
207207
.extracting("message")
208-
.containsExactly("server was unresponsive");
208+
.isEqualTo("server was unresponsive");
209209
}
210210

211211

oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/NimbusReactiveOpaqueTokenIntrospectorTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public void authenticateWhenInactiveTokenThenInvalidToken() {
142142
assertThatCode(() -> introspectionClient.introspect("token").block())
143143
.isInstanceOf(OAuth2IntrospectionException.class)
144144
.extracting("message")
145-
.containsExactly("Provided token [token] isn't active");
145+
.isEqualTo("Provided token [token] isn't active");
146146
}
147147

148148
@Test
@@ -175,7 +175,7 @@ public void authenticateWhenIntrospectionEndpointThrowsExceptionThenInvalidToken
175175
assertThatCode(() -> introspectionClient.introspect("token").block())
176176
.isInstanceOf(OAuth2IntrospectionException.class)
177177
.extracting("message")
178-
.containsExactly("server was unresponsive");
178+
.isEqualTo("server was unresponsive");
179179
}
180180

181181
@Test

0 commit comments

Comments
 (0)